Autor | Zpráva | ||
---|---|---|---|
imploder Profil |
#1 · Zasláno: 21. 11. 2010, 15:25:30
Mám následující .htaccess soubor:
RewriteEngine on RewriteBase /cesta/k/webu RewriteRule ^(.*)$ index.php/$1 [L] Při přístupu na URL, např. http://example.com/cesta/k/webu/test Funguje to, když dám před závorky další znak, např. x - takhle: RewriteRule ^x(.*)$ index.php/$1 [L] To se pak http://example.com/cesta/k/webu/xtest http://example.com/cesta/k/webu/index.php/test Můžete mi prosím poradit, kde je chyba? |
||
DoubleThink Profil * |
#2 · Zasláno: 21. 11. 2010, 15:35:02
Na 99.9% nekonečný cyklus přesměrování. Víc ti prozradí log serveru.
|
||
imploder Profil |
#3 · Zasláno: 21. 11. 2010, 16:36:18
DoubleThink:
Dík, bylo to zacyklení. Měl jsem špatnou představu o tom, co dělá [L]: myslel jsem, že "ukončení přepisování" znamená, že už se v dalším kole mod_rewrite nepoužije, takže cyklení nehrozí. Řešení: RewriteCond %{REQUEST_FILENAME} !index\.php RewriteRule ^(.*)$ index.php/$1 [QSA] Správně by tam měla být celá cesta k souboru index.php, aby se to nerozbilo v případě, že jméno některého nadřazený adresáře bude obsahovat index.php. Potom by ale ta cesta nebyla na jednom místě v RewriteBase, takže na to kašlu. I nutnost psát cestu na to jedno místo se mi moc nelíbí, radši bych, aby se to nemuselo dělat (http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=118123). |
||
Časová prodleva: 13 let
|
0