Autor Zpráva
Ivorius
Profil
Zatím mám tohle

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^neco\.cz
RewriteRule ^(.*)$ http://www.neco.cz/$1 [R=301,L]
RewriteRule ^(.*)/$ index.php?page=$1 [L,QSA]
RewriteRule ^([a-z\-/]+[^/])$ $1/ [R=301,L]

Což funguje bezvadně, pokud mám pouze jednu úroven. www.neco.cz/katalog/

Nyní mám však adresu www.neco.cz/index.php?page=katalog&type=druh&id=tramy

a chtel bych aby fungovalo www.neco.cz/katalog/tramy/

případně

/katalog/druh/tramy/

Nějaký nápad?
DJ Miky
Profil
Ivorius
Rewritni si /katalog/ na index.php?page=katalog a pak pomocí PHP rozsekej proměnnou $_SERVER['REQUEST_URI']... Ale pomocí mod_rewrite by to taky šlo...
Ivorius
Profil
Mě jde právě o ten mod_rewrite
gaminn
Profil *
A proč se patlat s mod_rewrite, kterej stejně nebude nijak flexibilní vzhledem k tomu, že si můžeš za chvíli rozmyslet, že přibyde další adresa, tzn. musel bys přidávat další řádky do .htaccess. Na celý svůj web mám použitý jediný rewrite (+ několik pomocných, které se netýkají vlastních stránek), který jakoukoliv adresu přesměruje na index.php?path=$1.

Proměnnou $path pak můžeš jednoduše rozložit na pole, první prvek pole potom vezmeš jako proměnnou $page, druhý prvek pak v případě stránky katalog budeš testovat, zda něco obsahuje, pokud ano, zobrazíš požadovanou sekci.
Ivorius
Profil
Nemůžu totiž využít php. Nemám přístup k serverovým skriptům. Potřebuji to prostě udělat přes mod_rewrite.
Ivorius
Profil
Nikoho nic nenapadá?
Kajman_
Profil *
místo
RewriteRule ^(.*)/$ index.php?page=$1 [L,QSA]
bych zkusil
RewriteRule ^([^/]+)/((([^/]+)/)?([^/]+)/)?$ index.php?page=$1&type=$4&druh=$5 [L,QSA]

Ale jestli nemáte přístup k serverovým skriptům, tak bych se na to vykašlal, protože díky tomu asi nemůžete používat takovéto adresy všude a přineslo by asi víc škody než užitku v podobě duplicitních adres.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0