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 *
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 *
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.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0