Autor | Zpráva | ||
---|---|---|---|
Khamos Profil * |
#1 · Zasláno: 19. 1. 2012, 14:45:45
Zdravím, mám velice zajímavý problém, technická podpora Onebitu taky neví, co s tím.
Potřebuji, aby byl funkční tvar adresy domena.cz/vyhledat/Skoda Fabia 1.2/ - samozřejmě předtím použiju rawurlencode. Bordel dělá ta tečka - háže to potom chybu 404 - neznámá stránka. Když napíšu jen /Skoda Fabia 12/ tak v pohodě. Takže jsem chtěl přidat tečku do mod_rewrite. Aktuálně vypadá takto: RewriteEngine on RewriteCond %{HTTP_HOST} ^([^.]*)\.([^.]*)$ RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R,QSA,L] # \x80-\xff - česká diakritika pro mod_rewrite # \x40, \x20 - zavináč, mezera pro mod_rewrite RewriteCond %{REQUEST_URI} ^([a-zA-Z0-9\-/\x80-\xff\x40\x20]*)$ RewriteRule ^(.*)$ /index.php?odkud=root&link=$1 [QSA,L] To je verze bez tečky, kterou používáme doteď a funguje. Jakmile do RewriteCond přidám tečku, server vyhodí chybu 500, a to i při přístupu do rootu domény, tzn. mujweb.cz. Změněný kód: RewriteCond %{REQUEST_URI} ^([a-zA-Z0-9\-/\x80-\xff\x40\x20\.]*)$ Zkoušel jsem i encodovanou tečku, nic: RewriteCond %{REQUEST_URI} ^([a-zA-Z0-9\-/\x80-\xff\x40\x20\x2e]*)$ Nevíte někdo co s tím? :( |
||
Davex Profil |
Zacyklí se to, protože regulárnímu výrazu s tečkou vyhoví i jméno skriptu index.php. Musí se přidat podmínka, která zajistí jen jeden přepis nebo nepřepisování existujících souborů.
RewriteCond %{ENV:REDIRECT_STATUS} ="" # nebo RewriteCond %{REQUEST_FILENAME} !-f Pravidlo se také může zjednodušit: RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([a-zA-Z0-9\-/\x80-\xff\x40\x20\.]*)$ /index.php?odkud=root&link=$1 [QSA,L] |
||
Khamos Profil * |
#3 · Zasláno: 19. 1. 2012, 21:01:28
Achjo, taková blbost... Díky moc!!
|
||
Časová prodleva: 12 let
|
0