| 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} !-fPravidlo 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: 15 let
|
|||
0