Autor Zpráva
mara
Profil *
Potřeboval bych poradit, jak nastavit url stránky tak, aby z url adresy www.domena.cz/promenna1?thecode=promenna2 dostat www.domena.cz/index.php?page=promenna1&id=promenna2

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9-]+)?(\?thecode=)?([A-Za-z0-9-]+)?$ index.php?page=$1&id=$3


Takhle funguje předávání proměnné1 pomocí
$_GET['page']

takze www.domena.cz/onas nacte stranku www.domena.cz/onas.php, ale když chci získat proměnnou2 pomocí
$promenna2=$_GET['id']

tak $promenna2 je prázdná. Přitom
if(isset($_GET['id']))

vrátí
true

Podařilo se mi rozjet www.domena.cz/promenna1/promenna2, ale pak mi nefungovaly odkazy na styly a obrázky když byla zadána i promenna2, tak by mě zajímalo, jestli se to dá nastavit tak, jak jsem popisoval.
Davex
Profil
V pravidle RewriteRule se vyhodnocuje pouze cesta a nikoliv parametry. Ty musíš získat v předřazené podmínce:
RewriteCond %{QUERY_STRING} ^thecode=([^&]+)
RewriteRule ^([A-Za-z0-9-]+)?$ index.php?page=$1&id=%1
mara
Profil *
Jo to je přesně co jsem potřeboval. Zakže funkční řešení:
RewriteEngine On
RewriteBase /
#Pro dvě proměnné
RewriteCond %{QUERY_STRING} ^thecode=([^&]+)
RewriteRule ^([A-Za-z0-9-]+)?$ index.php?page=$1&id=%1
#Pro jednu proměnnou
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)?$ index.php?page=$1

Díky.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0