Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod_rewrite] slash na końcu adresu
Forum PHP.pl > Forum > Serwery WWW > Apache
user123
Witam!

Po wejsciu na strone www.moja-fajna-strona-www.pl/index wszystko jest poprawnie, a po wejsciu na www.moja-fajna-strona-www.pl/index/ strona wyświetlna sie w niepoprawny sposób. Jak można przekierować adres z index/ na index?
phpion
Na końcu regułki przepisującej dodaj /? co spowoduje, ze / na końcu będzie opcjonalny (regułka zadziała dla adresu "z" oraz "bez" slasha).
user123
Najśmieszniejsze jest to, że mam zapytanie typu:

  1. <?php
  2. RewriteRule ^index/?$ index.php?dane=1
  3. ?>


i nie działa:) ;/
webdice
Tu chodzi prawdopodobnie o ścieżki do obrazków oraz stylów. Strona źle się wyświetla ponieważ przeglądarka szuka grafiki przykładowo w:

Kod
www.example.com/index/background.png


a nie w:

Kod
www.example.com/background.png


Sposobów jest na to kilka, chociażby podawanie ścieżek bezwzględnych, ale tematów o tym na forum jest wiele, więc szukaj.
user123
Moim zdanim problem polega na tym, ze gdy mam adres ze slashem na koncu to traktuje to jak katalogi i potem css szuka w strona.pl/index/css/styles.css zamiast szukac w strona.pl/css/styles.css. Można się przed tym jakoś przestrzec?
phpion
Tak, dokładnie o tym pisze ~webdicepl. Zamiast dołączać style w ten sposób:
  1. <link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />

lub
  1. <link rel="stylesheet" type="text/css" media="screen" href="./css/style.css" />

użyj ścieżki bezwzględnej, tj.
  1. <link rel="stylesheet" type="text/css" media="screen" href="/css/style.css" />

Konkretnie chodzi o slash na początku ścieżki do styli. Analogicznie postępuj z grafiką czyli src="/plik.jpg". Powinno pomóc.
webdice
Cytat(phpion @ 5.07.2008, 11:50:53 ) *
  1. <link rel="stylesheet" type="text/css" media="screen" href="/css/style.css" />

Konkretnie chodzi o slash na początku ścieżki do styli. Analogicznie postępuj z grafiką czyli src="/plik.jpg". Powinno pomóc.


Taka mała uwaga:

Kod
/plik.jpg


Odwołuje się do DOCUMENT_ROOT, więc jeśli strona będzie w jakimś katalogu (innym niż główny) także nie zadziała. Rozwiązaniem jest podanie jeszcze adresu strony (choć nie jest to zalecane).
phpion
No ale przecież strona zawsze "startuje" z DOCUMENT_ROOT więc w czym problem?
webdice
Mówię tu o bardziej abstrakcyjnych przypadkach typu localhost, gdzie mam kilka projektów:

Kod
http://localhost/projekt1/
http://localhost/projekt2/


W tym przypadku taki styl (czy też grafika) będzie się odwoływał do:

Kod
http://localhost/
phpion
Racja. Ale wystarczy zdefiniować sobie vhosty i po sprawie. Ja tak robię i mam symulację prawdziwego adresu smile.gif
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.