Autor | Zpráva | ||
---|---|---|---|
Camo Profil |
Zdravím.
Ja viem, že som tu zase s tým rewritom... Tak problém je v takýto. Ak mám adresu: host.sk/dir/dir2/nieco a očakávam že sa to prepíše na: www.host.sk/dir/index.php?url=dir2/nieco všetko funguje až na prípad, keď adresa vyzerá takto: host.sk/dir/dir2 Ide o prípad, keď dir2 je skutočný adresár. A opera dragonfly ukazuje, že sa to nepodstrkuje ale presmerováva. Vtedy to neviem prečo dáva takýto výsledok: www.host.sk/dir/dir2/url=dir2 sa strieda s www.host.sk/dir/dir2?url=dir2 kým to Operu neprestane baviť. Cyklí sa to jedna radosť.... Pridal som aj podmienku na QUERY_STRING, ale nepomohlo to. .htaccess vyzerá takto: RewriteEngine on RewriteBase /dir #ignoruj vsetky existujuce soubory (php, img, css, js) RewriteCond %{REQUEST_FILENAME} !-f #ignoruj vsetky existujuce adresare #RewriteCond %{REQUEST_FILENAME} !-d #prida www RewriteCond %{HTTP_HOST} !^www\. RewriteRule (.*)$ http://www.%{HTTP_HOST}/myCMS/$1 [R=301,L] #odstrani lomitko na konci RewriteRule ^(.+)/$ $1 [R=301,L] #prepis na url=var a podstrcenie RewriteCond %{QUERY_STRING} !url RewriteRule (.*)$ index.php?url=$1 [L] Nechápem, ako to, že v tej problémovej adrese ostane to dir2 v url a neosekne sa ani lomítko(resp. raz sa osekne a raz nie, keď sa to cyklí). Ignoruje to poslednú aj predposlednú podmienku podľa mňa. Vie mi to niekto vysvetliť? Ďakujem! |
||
Kajman Profil |
#2 · Zasláno: 14. 3. 2013, 14:22:24
Cyklí nejspíše pravidlo na řádku 16 v kombinaci s defaultní vlastností mod_dir, že přidává lomítko pro adresy ukazující na adresář. Zkuste to druhé chování vypnout...
DirectorySlash Off |
||
Camo Profil |
Kajman:
Klobúk dole. Funguje to. Ale som z toho úplne mimo. Lebo v Opere vidieť, že raz príde presmerovanie na adresu s lomítkom a raz bez neho. Celý ten chybný proces sa dá vidieť v Opera dragonfly na tejto adrese. A keď sa tam doplní hocičo tak to funguje link |
||
Časová prodleva: 3 měsíce
|
|||
IdemeNaHavaj Profil |
#4 · Zasláno: 3. 6. 2013, 17:29:11
Môžeš prosím hodiť celý obsah .htaccess?
|
||
Camo Profil |
#5 · Zasláno: 3. 6. 2013, 18:52:28
IdemeNaHavaj:
Options +FollowSymlinks #mod_dir robi bordel s existujucimi adresarmi ako OBSAH/ DirectorySlash Off RewriteEngine on RewriteBase /myCMS #ignoruj vsetky existujuce soubory (php, img, css, js) RewriteCond %{REQUEST_FILENAME} !-f #ignoruj vsetky existujuce adresare RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} !^www\. RewriteRule (.*)$ http://www.%{HTTP_HOST}/myCMS/$1 [R=301,L] #ignoruj vsetky existujuce soubory (php, img, css, js) RewriteCond %{REQUEST_FILENAME} !-f #ignoruj vsetky existujuce adresare RewriteCond %{REQUEST_FILENAME} !-d #odstrani sa lomitko na konci RewriteRule ^(.+)/$ $1 [R=301,L] #ignoruj vsetky existujuce soubory (php, img, css, js) RewriteCond %{REQUEST_FILENAME} !-f #ignoruj vsetky existujuce adresare RewriteCond %{REQUEST_FILENAME} !-d #prepis na ?url=var a podstrcenie RewriteRule (.*)$ indexTest.php?url=%{REQUEST_FILENAME} [L,QSA] |
||
Časová prodleva: 11 let
|
0