Autor Zpráva
Argos
Profil
Ahoj,
nevím jak bych lépe krátce definoval můj problém - proto je název topicu trochu zavádějící. Chtěl jsem se zeptat, jak mám přenést proměnné GET pokud použiji mod rewrite a výsledná adresa po přepsání obsahuje nějaké proměnné - možná bude lepší příklad - můj kus .htaccess:
RewriteRule ^([^/]+)\.html ?sekce=$1 [QSA,L]

toto má za úkol přesměrovat například:
http://example.cz/novinky.html na http://example.cz/?sekce=novinky

pokud vše udělám takto, vše je OK, ale pokud chci přenést ještě jakoukoliv proměnnou nefunguje to viz:
http://example.cz/novinky.html?menu=novinky se přenese jako http://example.cz/?sekce=novinky
tím je proměnná menu ztracena - ikdyž jsem původně použil QSA parametr... - co se s tím dá dělat? původně jsem myslel že je špatně nastavený hosting, ale když se mi toto stalo podruhé jinde, dospěl jsem k závěru že něco dělám špatně já, pokud však adresu přepíši s parametrem R (výsledek je vidět v adresní řádce, vše funguje - to se mi ale nezdá jako adekvátní řešení)
Asi to bude klasický problém začátečníků a jistě se to tu již muselo řešit, ale nenašel jsem :-( - o mod rewrite je toho tu napsáno hrozně moc a asi jsem neuměl správně definovat dotaz na hledání
Děkuji za rady ;-)
Kajman_
Profil *
A po přidání souboru, který to má zpracovat, to také nefunguje?

RewriteRule ^([^/]+)\.html index.php?sekce=$1 [QSA,L]
Argos
Profil
Děkuji za nápad, ale bohužel nefunguje (zkoušel jsem různé určení adresářů atd - nic) :'-(
takže aktuální verze .htaccess (celá):
RewriteEngine on

RewriteRule ^([^-]+)-([^\.]+)\.html ./index.php?sekce=$1/$2 [QSA,L]
RewriteRule ^([^/]+)\.html ./index.php?sekce=$1 [QSA,L]


a ještě dodatek - nefunguje to ani s R příznakem - protože takováhle verze mě hodí prostě někam do pryč - ale pokud zadám celou adresu, tzn například:

RewriteRule ^([^/]+)\.html http://example.cz/index.php?sekce=$1 [QSA,L]

adresa se přepíše a pošlou se i všechny proměnné asi stejný efekt jako [R,QSA,L] ;-)
nějaké další návrhy? (ozkouším vše co bude mít alespoň trochu smysl - chci přijít na to kde dělám chybu)
Kajman_
Profil *
Ještě bych zkusil zkouknout http hlavičky, zda se opravdu chodí na tu stránku jen jedním požadavkem.

A jak zkoušíte tu proměnnou menu... jako $_GET['menu'] nebo nějak jinak?
Argos
Profil
Tak problém vyřešen - za tohle se opravdu stydím :-[:
měl jsem přiřazení proměnné až za jejím porovnáním - tím pádem jsem neporovnával proměnnou přejatou z $_GET, ale proměnnou která se "přiřadí sama" (při safe-mode:off;) do proměnné téhož názvu - jakmile jsem však použil přepis adresy, proměnná přiřazená "automaticky" přestala fungovat :-D

Kajman_
: dík moc za trknutí správným směrem - když jsem viděl že v hlavičce je proměnná přenesena, říkal jsme si že to není možné že tam prostě není a tak dlouho jsem jí stopoval až jsem jí našel :-[

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0