Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: relatywne ścieżki zabijają serwer
Forum PHP.pl > Forum > Serwery WWW
krnombrny
Witam.

Zrobiłem stronę, która korzysta z mod_rewrite. Aby uniknąć problemów z lokalizowaniem obrazków (nigdy do końca nie wiadomo czy jest się aktualnie w bieżącym, czy w wyższym katalogu, wiadomo, mod_rewrite) większość relatywnych ścieżek do obrazków wpisałem tak:

../../../../../../../gfx/obrazek.gif

Logicznie rzecz biorąc serwer dojdzie do roota serwera wirtualnego, bo wyżej już nie może, i wpadnie do katalogu gfx. Co więcej, faktycznie to robi smile.gif Jest jednak małe 'ale': potrafi zastanawiać się MINUTAMI nad lokalizacją obrazków, albo po prostu się zatyka i przez następnych 5 minut mam od niego zero odpowiedzi.

Oczywiście przetestowałem możliwość bezwzględnych ścieżek do plików, ale nie chcę tego stosować ... bo nie.

Co robić? Jakiś mod_rewrite który usystematyzuje te wszystkie ../../? Czy coś jeszcze inszego?

Pozdrawiam
devnul
Cytat
Oczywiście przetestowałem możliwość bezwzględnych ścieżek do plików, ale nie chcę tego stosować ... bo nie.
głupi powód
i skoro i tak przechodzisz do katalogu głównego to nie prościej zamiast ../../../../../../../gfx/obrazek.gif dać zwyczajnie /gfx/obrazek.gif ? efekt ten sam
krnombrny
Powód jaki jest, każdy widzi. Bo babcia sobie zażyczyła.

Wracając do tematu: jeśli użyję /gfx/coś.jpg to serwer odniesie się do tego z 'bieżącego katalogu'.

-Załóżmy, że wpisuję adres w przeglądarce: http://domena.pl/mahomet/turban/
-Załóżmy, że w głównym katalogu mam .htaccess, który przekierowuje z przepisaniem zmiennych, jakoś tak:
public_html/index.php?dzial=mahomet&przykrywka=turban

-załóżmy, że w pliku index.php jest zapytanie o /gfx/coś.jpg,

wtedy serwer zwraca mi błąd: Not Found in public_html/mahomet/turban/gfx/coś.jpg.

W dodatku nie jest ściśle określona ilość 'nibykatalogów' podawanych w adresie URL ->dlatego właśnie stosuję ../(../) [w okresie].
Riklaunim
To masz błędną konfigurację serwera czy to w .htaccess czy w samym pliku konfiguracyjnym apache tongue.gif stosowanie bezwzględnych ścieżek to nie rocked science i nie ma z tym problemów... chyba że się namiesza winksmiley.jpg

Jeżeli masz przepisywane urle typu strona.pl/x/y/z/ itp. To dla /gfx/* musisz zabronić mapowania w mod_rewrite smile.gif
krnombrny
Cytat(Riklaunim @ 30.10.2008, 14:24:48 ) *
dla /gfx/* musisz zabronić mapowania w mod_rewrite smile.gif


Ok. Próbowałem coś o tym wygooglać, ale dużo nie pojąłem. Dlatego zadam znienawidzone pytanie: JAK?
devnul
na przykład tak:
Kod
RewriteCond %{REQUEST_FILENAME} !-f

zakładam że wiesz co oznacza powyższy zapis - jeśli nie to z całą pewnością przy odrobinie wysiłku się dowiesz
krnombrny
Ach. Myślałem że będzie to coś wyrafinowanego, albo chociaż jakiś sprytny chwyt. Well, dzięki za chęci, już sobie poradzę.
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.