Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mod Rewrite problem
Forum PHP.pl > Forum > PHP
gothye
Witam

mam problem z rewrite sad.gif ,Mianowicie :

mam .htaccess :

RewriteEngine on 

RewriteRule ^product$ index.php?module=product [NC,L]

RewriteRule ^product/([0-9]+)$ index.php?module=product&id=$1 [NC,L]






Jesli wchodzę na adres localhost/product w pliku product.php dewiniuje kod html jako :

<img src='styles/jakisobraze.jpg'>

ale jesli wchodzę na adres localhost/product/123

to scieżke do tego samego obrazka musze definiować tak :

<img src='../styles/jakisobraze.jpg'>




przez co jestem zmuszony do przepisywania pewnych rzeczy wiele razy sad.gif

Jak tego uniknąć ?




thek
Podaj ścieżkę od BASE czyli z / na początku... Na przykład:
src="/styles/jakisobraz.jpg"
ponieważ / określa w takim wypadku katalog główny serwisu. Najlepiej jeszcze zdefiniować wtedy adres bazowy serwisu dla świętego spokoju.
pablo89pl
Moze w htaccess RewriteBase /
Ewentualnie mozesz base_urla przekazywac do kazdej sciezki lub to co kolega wyzej
Powodzenia
gothye
dodałem : RewriteBase /katalog w .htaccess ,zmieniałem src='' na różne sposoby i nic sad.gif
phpion
Do wszystkich ścieżek (url, skryptów JS, arkuszy stylów, obrazków) dodawaj po prostu / na początku czyli zamiast:
  1. <img src='styles/jakisobraze.jpg'>

wpisuj:
  1. <img src='/styles/jakisobraze.jpg'>

Tyle w zupełności powinno pomóc.

To zadziała, jeśli styles jest katalogiem dostępnym z poziomu przeglądarki. Jeżeli Twój adres wygląda np. http://localhost/projekt, to podawaj /projekt zamiast samego /
gothye
to tego to sam doszłem , ponieważ stosowanie /projekt == ../  w ścieżce a dalej pojawia sie taka promocja ;

jak dodam kolejny parametr  w .htaccess :

RewriteRule ^product/([0-9]+)/([a-z]+)$ index.php?module=product&id=$1&mode=$2 [NC,L]

w tym samym pliku ścieżkę do tego samego css czy obrazka muszę już definiować :

<imq src"../../obrazek.jpg"> inaczej nie wyświetla sad.gif

phpion
Ok, wiesz lepiej. Twoja sprawa. Przyjmij tylko do wiadomości, że osobiście korzystam z przyjaznych linków o różnej liczbie segmentów ("zagnieżdżeń") i stosuję / na początku ścieżek. Jakoś nie mam z tym problemów.
gothye
nie wiem dlatego pytam ,jak wpisuję sciężkę :

<img src='/style/obraze.jpg'> nie pokazuję go sad.gif

phpion
Jak wygląda Twój adres strony w przeglądarce? http://localhost czy http://localhost/projekt ?
gothye
adres do projektu to :http://localhost/projekt 

w .htaccess

RewriteBase /projekt

phpion
Więc:
  1. <img src='/projekt/style/obraze.jpg'>
gothye
więc dodałem jak napisałęś i jeśli wchodzę na adres :

localhost/projekt/product jest ok a jak wchodzę na adres :

localhost/projekt/product/3555 czyli  RewriteRule ^product/([0-9]+)$ index.php?module=product&id=$1 [NC,L]

css oraz cała grafika rozjeżdza się ,a są zdefiniowane jako '/projekt/style/style.css' itd.   sad.gif wiec

moje pytanie brzmi gdzie leży problem poniewaz musze definiować ściezki jako  '../projekt/style/style.css' inaczej nie działa 


mój plik products.php wygląda w uproszczeniu :


  1. <?php
  2. if(isset($_GET['id']) && empty($_GET['mode']))
  3. {
  4. echo "<img src='/projekt/style/obrazek.jpg'>" ;
  5. }
  6.  
  7.  
  8. if(isset($_GET['id']) && isset($_GET['mode']))
  9. {
  10.   echo "<img src='../projekt/style/obrazek.jpg'>" ;
  11. }
  12. ?>
[php][/php]

myślę że to najleprze rozwiązanie :




  1. <?php
  2.  
  3.        $server = 'http://127.0.0.1/projekt' ;
  4.  
  5.       i wszędzie : 
  6.  
  7.       echo "<img src='".$server."/style/obrazek.jpg'>" ;
  8.  
  9. ?>
  10.  


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.