Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] mod_rewrite pliki bez rozszerzen ( jpg png gif )
Forum PHP.pl > Forum > Przedszkole
gindek
Witam.
Jak w opisie, musze sie odwolywac do plikow bez podawania ich rozszerzeń.
Chciałem to zrobić w jednym pliku htaccess dla wszystkich plikow jakie mam na serwerze, no ale mi nie wychodzi ( tak nazwy plikow w folderach sa unikalne tz. nie ma 1.jpg oraz 1.gif )

Poki co mam jeden glowny dla jpg, no i do kilku folderow gdzie mam pliki z innymi rozszerzeniami wrzculem osobne htaccess usuwajace rozszrzenia dla tych formatow plikow.
czyli np. struktura
/ ---- htacces "usuwajacy" jpg
/cos_gdzie_jest_png/ ---- htaccess "usuwajacy" png
/cos_gdzie_jest_gif/ ---- htaccess "usuwajacy" gif

formatka jest jedna zawsze
Kod
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.jpg [L]


wiem ze [L] dziala jak break, teraz tak mam zeby dzialalo tongue.gif

probowalem zrobic plik ze "skip" oraz z "chain" no ale mi nie wyszlo haha.gif, prawde mowiac nie do konca rozumiem pojecie "the rule matches" ( regula pasuje / jest spełniona / zwraca true ).
czyli jezeli odwoluje sie poprzez
www.onet.pl/plik
a na serwerze mam
www.onet.pl/plik.png

a w htaccess mam

1. RewriteRule ^([^\.]+)$ $1.jpg [S=0]
2. RewriteRule ^([^\.]+)$ $1.png [L]

to powinno być tak jak nie pasuje regula 1. to odrazu omija 0 reguł ( sprawdzalem tez z 1 ) i odpala regule 2. ? ( pytam tutaj czy to dziala tak jak mysle )


no i jeszcze raz na koniec co tak naprawde chce uzyskac

chce napisac jeden plik htaccess dzieki ktoremu beda mi sie wyswietlaly obrazki na serwerze bez podania jego rozszrzenia, klops jest taki ze w jednym foledrze mam pliki zarowno png jak i jpg czy gif .


by_ikar
Nie wiem czy coś takiego ci wyjdzie w htaccess, bo niby skąd htaccess ma wiedzieć jakie będzie docelowe rozszerzenie pliku? Gdyby wszystkie pliki były jednego rozszerzenia, to akurat zrobienie czegoś takiego to nie problem, ale w przypadku kiedy rozszerzenie jest różne, to z poziomu htaccess tego nie zrobisz (poprawcie mnie jeśli się mylę) bo jest tylko dopasowywanie do adresów, a nie dopasowywanie do adresów i plików.

Możesz to zrobić w php, i z jego poziomu sprawdzać czy taki plik istnieje, szukając w różnych rozszerzeniach i wyświetlić pierwszy znaleziony.

Generalnie pomysł średni.
gindek
A takie pytanie, plik htaccess jest wykonywany od góry do dołu, jak w większości języków skryptowych ?
Chodzi mi o to czy mogę zrobić coś takiego

dodać do aktualnego wywołania rozszerzenie .jpg , zapisać to w jakiejś zmiennej i następnie niżej dać
RewriteCond %{moj_nowy_adres_jpg} !-f
no i tutaj regułe rewrite

generalnie żeby zrobić coś w stylu

Cond
rule
cond
rule
cond
rule



[edit]
wypieprzylem wszystkie rozszerzenia plikow biggrin.gif, przeglądarce one nie sa potrzebne, no i dziala ;]
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.