Autor Zpráva
Pavel_x3
Profil *
Zdravím,
mám problém s rewritem a nevím, co je špatně. Přepisování URL funguje ale ty promenne, co se predavají přes GET nefungují. Podobný přepis už jsem použival a nebyl problém. JE pravda, že jiný hosting. Má někdo nápad, kde by mohl být problém? díky.

RewriteEngine On
Rewritebase /
RewriteCond %{QUERY_STRING} ^index.php?objekt=([0-9]+)&seo=([^&]+)$
RewriteRule ^index\.php$ %2_%1.html? [R=301,L]
RewriteRule ^([^/]+)_([^/]+)\.html$ index.php?objekt=$2&seo=$1&rw=1  [L,QSA]


http://neco.cz/index.php?objekt=140&seo=nejaky-hezky-klicovy-slovo


Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Kajman_
Profil *
Když ta pravidla nepoužijete a zadáte verzi s php, tak tam proměnné jsou?
Pavel_x3
Profil *
pokud jedu bez rewritu vse funguje pokud zapnu. prepis se provede v radku je pak
http://neco.cz/nejaky-hezky-klicovy-slovo_cislo.html ale promene get se nepredavaji...
Joker
Profil
Pavel_x3:
Pro ujištění: Čili problém spočívá v tom, že když dáte třeba example.com/hezky-nazev.html?neco=1
tak ve skriptu to $_GET["neco"] není?
Pavel_x3
Profil *
ne tak uplne tenhle rewrite mi slouzi k tomu.

ze normalne v kodu mam link na

http://neco.cz/index.php?objekt=140&seo=nejaky-hezky-klicovy-slovo

ale ve vysledko otevreny odkaz ma tvar

http://neco.cz/(promena seo)_(tady je promena objekt).html

ale v GETu neni co být má. snad jsem to napsal pochopitelně.

diky za pripadnou radu
Kajman_
Profil *
Tento přesměrovací rewrite má sloužit k ošetření starých odkazů z jiných webů, kde je nemůžete přespat na nové adresy. Pokud na svých stránkách budete mít pro každý požadavek přesměrování, tak si z pohledu optimalizace spíše ublížíte.

A stejně nechápu, jak ta pravidla můžou přesměrovat, když v query stringu testuje i index.php.
Davex
Profil
Pavel_x3:
Vypíše se obsah proměnných s následujícími soubory? Nejsou tam nějaká další obecnější pravidla, se kterými by to mohlo kolidovat?

soubor .htaccess:
RewriteEngine	On
RewriteBase	/

RewriteCond	%{QUERY_STRING}	^objekt=([0-9]+)&seo=([^&]+)$
RewriteRule	^index\.php$	%2_%1.html?	[R=301,L]

RewriteRule	^([^_]+)_([^.]+)\.html$	index.php?objekt=$2&seo=$1&rw=1	[L,QSA]


soubor index.php:
<pre><?php

print_r($_GET);

?></pre>
Pavel_x3
Profil *
Davex:
diky takhle to samo ptam ten index v cond...se mi tam pridal nejak omylem asi, kdyz jsme neco zkousel...

budu muset zjistit jestli na tom hostingu opravdu neni neco vis nastaveno.

to Kajman_: no nechám si rád poradit..

takže jak mam udělat, že budu odkazovat na http://neco.cz/(promena seo)_(tady je promena objekt).html
ale pri tom se to budu mit v getu tak jak potrebuju diky za radu?....
Kajman_
Profil *
budu odkazovat na http://neco.cz/(promena seo)_(tady je promena objekt).html

Ano, to už pak má smysl použít rewrite na podstrčení. Je to lepší než
ze normalne v kodu mam link na index.php?objekt=140&seo=nejaky-hezky-klicovy-slovo
a pak mít pokaždé přesměrování na verzi bez index.php.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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