Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Apache _ Wiele reguł RewriteCond

Napisany przez: sazian 10.08.2018, 14:53:42

Witam,

chcę przy pomocy htaccesa sprawdzić czy plik ma rozszerzenie jpg, czy ma parametr "mini" oraz czy istnieje, jeśli mam 3xtak to ma uruchomić plik php.
Czyli przykładowy plik spełniający warunek powinien wyglądać tak
http://domena.aaa/plik.jpg?mini

napisałem taką regułę 

Kod
RewriteCond %{REQUEST_URI} (.*)\.jpg [NC]
RewriteCond %{QUERY_STRING} mini [NC]
RewriteCond %{DOCUMENT_ROOT}/%1.jpg -f
RewriteRule (.*) plik.php [L]

która oczywiście nie działa sad.gif
Ale jak usunę RewriteCond %{QUERY_STRING} mini [NC] lub RewriteCond %{DOCUMENT_ROOT}/%1.jpg -f to działa, ale jeśli są oba to już nie sad.gif

Macie jakiś pomysł dlaczego tak się dzieje ?


Napisany przez: trueblue 10.08.2018, 15:06:53

A może tak?

Kod
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} (.*)\.jpg [NC]
RewriteCond %{QUERY_STRING} mini [NC]
RewriteRule (.*) plik.php [L]

Napisany przez: sazian 10.08.2018, 15:54:58

Ok fakt działa ale trochę za bardzo uprościłem przykład wink.gif

Dla ułatwienia można przyjąć że ma to taki program do generowania miniaturek.
Jeśli ktoś chce wczytać plik.jpg?mini to na serwerze trzeba sprawdzić czy istnieje plik-mini.jpg, jeśli nie tu musi zostać uruchomiony generator miniaturek.

Czyli tak naprawdę powinno być !-f ale dla testów najpierw chciałem sprawdzę odwrotnie "bo tak będzie łatwiej".
Dlatego też dałem to %{DOCUMENT_ROOT}/%1.jpg które docelowo miało być zamienione na %{DOCUMENT_ROOT}/%1-mini.jpg

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)