Autor | Zpráva | ||
---|---|---|---|
Slávek Profil * |
Moderátor Davex: Přesunuto z kategorie Jak něco udělat?
RewriteEngine on RewriteCond %{HTTP_HOST} .*domena.cz$ RewriteCond %{REQUEST_URI} [\w/]+\.[\w]+$ RewriteRule ^([\w/]+)\.([\w]+)$ /slozka/$1.$2 RewriteCond %{HTTP_HOST} .*domena.cz$ RewriteRule ^[\w/]*$ /slozka/index.php Toe v .htaccess A jak funguje? Pěkně. Vrací 500 !!! A to kvůli jednomu hloupýmu lomítku. Když u prvního Rule smažu to lomítko zde [\w/] na [\w] - tak to funguje, akorát že se nenačtou soubory ve složkách (třeba obrázky), pač v jejich URI jsou lomítka. Nechápu proč se tomu ale to jediný lomítko nelíbí, u druhýho Rule taky je a nevadí tam, jen tohleto... Prossííím vás lidičky, dokážete tohle někdo vysvětlit? |
||
Slávek Profil * |
#2 · Zasláno: 1. 2. 2010, 14:24:47
Tak jsem na to zřejmě přišel. Je to zacyklený. Jako moc nechápu jak přesně mod rewrite běhá, ale podle toho, jak mi to funguje, bych řek, že nějak takhle:
- klient volá URL - rewrite ji pošle přepisovacíma pravidlama a upraví (v pořadí odshora dolu) - přepsanou adresu znovu vezme a pošle ji pravidlama znova - pokud vyleze tatáž adresa, tu vrací jako výsledek klientovi, pokud vyleze opět modifikovaná, posílá ji pravidlama znovu a znovu... a někdy z toho může bejt zacyklení, který vrací 500 Je to tak? Nebo jinak? Podle toho jak mi to teď behá tak to vypadá že jo. já si k prvnímu RewriteRule přidal ještě: RewriteCond %{REQUEST_URI} !^/slozka/.*$ a btw ten Cond kerej u prvního Rule kontroluje jestli je v URI tečka byl zbytečnej tak šel pod delete teď to sice funguje o něco lépe - načte to i soubory v podsložkách, avška jenom dokud neni volaná adresa třeba takováhle: http://domena.cz/nejaka_promenna/ správně se podle druhýho Rule přepíše na http://domena.cz/slozka/index.php jenže například obrázky s relativní adresou... mám třeba <img src="obr.jpg">, browser si ale z toho udělá adresu http://domena.cz/nejaka_promenna/obr.jpg a rewrite jí přepíše na http://domena.cz/slozka/nejaka_promenna/obr.jpg a to už je špatný, tam obrázek neni... Mno budu nad tim bádat vo nudných hodinách ve škole, jak mu to sakra správně vysvětlit :-D |
||
Kajman_ Profil * |
#3 · Zasláno: 1. 2. 2010, 15:29:48
Ano, při přepsání se pravidla prochází znovu. Je to vidět např. v rewritelogu. Při cyklení může 500 nastat.
Napište si cesty k obrázkům, stylům, dalším stránkám atp. absolutně. Ještě existuje tag <base> ale tomu bych se snažil vyhnout. |
||
Časová prodleva: 13 let
|
0