Autor Zpráva
Anonymní
Profil *
RewriteRule ^(.*) index.php?sekce=$1 [L,QSA]


Tak tohle by mnelo udelat tohle:

Kdyz napisu domena.cz/archiv tak by to mnelo udelat index.php?sekce=archiv
no ono to dela....

Ale kdyz napisu domena.cz/index.php
tak to samozrejmne udela domena.cz/index.php?sekce=index.php
a tim padem mi switch hodi nenalezeno....

No a ja fakt uz nevim co stim .... jestli se to vubec da nejakym pravidlem v htaccessu udelat .....

aby kdyz napisu domena.cz/index.php to neudelalo to co to dela,
aby to hodilo index.

Vi nekdo ?
Diky
Anonymní
Profil *
RewriteRule ^([a-zA-Z0-9-]*)$ index.php?sekce=$1 [L,QSA]


Tak takto to funguje jak jsem chtel - vysvetli mi nekdo co to dela ?;-)
Poša
Profil
Rozdíl je v regulárním výrazu za RewriteRule:

Když napíšeš:

^(.*)

znamená to asi tohle: jakýkoli počet (to je ta *) jakýchkoli znaků (to je ta .) následujících za začátkem řetězce (to je ta ^) ulož do proměnné $1 (to jsou ty zavorky).

Zatímco když použiješ:

^([a-zA-Z0-9-]*)$

znamená to: jakýkoli počet (to je ta *) znaků ze třídy (to jsou znaky mezi []) dané výčtem rozsahů (to jsou rozsahy a-z, A-Z, 0-9 a -) mezi začátkem řádku (to je ta ^) a koncem řádku (to je ten $) ulož do proměnné $1 (to jsou ty závorky).

Jinak řečeno, ten první výraz vezme naprosto cokoliv, co následuje za domenou a lomitkem, a prelozi to na adresu index.php?sekce=...

Druhý výraz taky vezme to, co následuje za doménou a lomítkem, ale pouze v případě, že se to skládá z malých nebo velkých písmen, čísel nebo pomlčky a přeloží to na index.php?sekce=... . Pokud se tam vyskytne třeba . (jako v případe /index.php), nechá to bejt.

Poša
Toto téma je uzamčeno. Odpověď nelze zaslat.