Autor Zpráva
Pur
Profil *
Zdravím, potřeboval bych poradit.

Používám Mod_rewrite pro generování přátelských URL:

RewriteRule ^(.*)/$ index.php?rw=1&stranky=%{REQUEST_URI} [R=301,L]

Do proměnné "stranky" se mi načte vlastně cesta na webu s lomítky, v PHP si z ní udělám pole a čtu z něj. Bohužel si zatím moc nerozumím s regulárními výrazy a nedaří se mi provést následující: pokud bych měl adresu v prohlížeči
www.example.com/uroven1/uroven2/, vše je v pořádku a do proměnné "stranky" se mi načtou úrovně. Ale chtěl bych upravit pravidlo přesměrování, abych mohl použít například také url
www.example.com/uroven1/uroven2/?hledat=hledany_text

Nevím si s tím rady :-(
Davex
Profil
Žádné regulární výrazy nejsou potřeba. Parametry se budou skriptu předávat po přidání příznaku QSA.

Pak mi ještě není úplně jasné, proč se "přátelské URL" vzápětí zničí přesměrováním zpět na ošklivé. Domnívám se, že by v tom pravidle neměl být příznak R=301.
Pur
Profil *
Díky moc!
Na query string jsem úplně zapoměl... R=301 tam být opravdu nemá, pak se adresa přesměruje...

P.S. To, že se přátelské URL zničí, bude platit jen v určitých adresách. Například zmíněné vyhledávání. Moc se mi nezamlouvá www.example.com/hledat=hledany_text/. A poté do budoucna, když bych například v určitých systémových nastavení potřeboval spousty parametrů s jasně definovanými proměnnými.

Ještě jednou děkuji za pomoc! :)
Pur
Profil *
S tím zničením přátelské adresy jsem to pochopil tak, proč tam vůbec chci ten query string a odpovídal jsem na toto... Ale otázka byla myšlena jako proč tam je tedy to R=301... Jen pro upřesnění mé reakce...
Davex
Profil
Pur:
To "zničení" jsem vztahoval jen k nežádoucímu přesměrování.

Pro vyhledávání by možná bylo lepší stabilně používat jednotné URL bez cesty www.example.com/?hledat=hledany_text, ale to už s tím přepisem nesouvisí.
Pur
Profil *
Právě bez toho QSA jsem nemohl docílit adresy pro vyhledávání, jak píšeš a mohl jsem použít jen jak jsem psal já (example.com/hledat=hledany_text/), což se mi nezamlouvalo a proto jsem napsal sem žádost o radu.
Teď již budu moci používat example.com/?hledat=hledany_text, což se pro tyto účely hodí určitě lépe, než "přátelská URL". A ještě to budu používat také např. pro hledání v určitých sekcích, např. example.com/aktuality/?hledat=hledany_text

Takže díky Ti za pomoc, přeji hezký zbytek dne ;-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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