Autor Zpráva
Patrik Cicvárek
Profil *
Dobrý den,

Používám mod_rewrite, ale mám problém s jednou věcí. mám kategorii a k chtěl bych přidat razeni vysledku, nejnovější atd. Takze jsem to chtěl takto /kategorie/nejnovejsi, a potom to smerovat dal kategorie/podkategorie/nejnovejsi atd atd, takze jsem se vrhl na ten prvni priklad ale vubec to nereaguje, kategorie atd se me vypise spravne, ale razeni nereaguje, zkousel jsem vse, zkousel jsem i prohodit v hraccess to razeni aby bylo pred podakce, pak razeni jelo, ale zase nejela podakce, kde muze byt problem, co delam spatne ? php mam spravne, kdyz zadam do adresy &razeni=nejnovejsi, tak mi to funguje...asi jdu na to uplne spatne, nevim...dik za rady

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index2.php?akce=$1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ index2.php?akce=$1&podakce=$2

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ index2.php?akce=$1&razeni=$2



Jsem to podal spatne, proste kdyz dam s timto zapisem v htaccess co jsem uvedl, kategorie/nejnovejsi/ tak to nereaguje, kdyz prohodim radek 11 za 7 a pak zadam kategorie/podkategorie, tak mi pak zase nefunguje ta podkategorie, ale razeni, kategorie/nejnovejsi ano...
Davex
Profil
Patrik Cicvárek:
razeni nereaguje, zkousel jsem vse, zkousel jsem i prohodit v hraccess to razeni aby bylo pred podakce, pak razeni jelo, ale zase nejela podakce, kde muze byt problem, co delam spatne ?
Druhé a třetí pravidlo používají stejný regulární výraz a po přepisu adresy druhým pravidlem už tato přepsaná adresa nevyhoví regulárnímu výrazu ve třetím pravidle.

Za předpokladu, že stačí pouze jeden typ řazení, by se to dalo vyřešit úpravou regulárního výrazu ve třetím pravidle na ([^/]+)/(nejnovejsi)/? a prohozením řádků 11 a 7.

Jinak ale nemá moc smysl vyvádět logiku směrování mimo skript do pravidel mod_rewrite. Nejlepší by bylo, kdyby se celá cesta předala skriptu pomocí univerzálního pravidla a v něm zařídil zbytek.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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