Autor Zpráva
shragicz
Profil
Zdravím,

normálně dotazy do diskuse nevkládám a snažím se věcem přijít na kloub, ale s tímto se trápím už 3 dny a nevím co dělám špatně.

Mám doménu 3 řádu, řekněme auto.domena.cz - po vstupu na tuto doménu potřebuju, aby se zavolal skript inzeraty.php?kategorie=automobily ale jen za podmínky, že adresa je volána bez dalších stránek tzn končí .cz nebo .cz/
Můj htaccess vypadá takto a funguje mi to:

RewriteCond %{HTTP_HOST} ^auto.domena.cz$
RewriteCond %{REQUEST_URI} !^/(.+)
RewriteRule (.*) inzeraty.php?kategorie=automobily [L]

Zajímavé ale je, že pokud místo teček použiju \. jak je ve všech návodech psáno, tak to nefunguje

Dále, pokud přijde požadavek na stránku auto.domena.cz/prodam nebo auto.domena.cz/koupim, tak mám tato pravidla:

RewriteRule  ^prodam/?$ http://%{HTTP_HOST}/inzeraty.php?kategorie=automobily&typ=n [L,QSA]
RewriteRule  ^koupim/?$ http://%{HTTP_HOST}/inzeraty.php?kategorie=automobily&typ=p [L,QSA]

Dále, pokud mi přijde požadavek na podkategorii tzn např auto.domena.cz/audi nebo auto.domena.cz/fiat, tak to mám ošetřeno takto:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/inzerat/
RewriteRule ^([^/]+)/?$ inzeraty.php?kategorie=automobily&podkategorie=$1

To mi taky funguje, uvádím to jen pro úplnou představu, nyní co mi nefunguje, je když chci aby se ty podkategorie ještě rozmělnily na prodám a koupím

například:
auto.domena.cz/prodam/audi nebo auto.domena.cz/koupim/fiat
potřebuji, aby se podstrčily stránky
inzeraty.php?kategorie=automobily&podkategorie=audi&typ=n
inzeraty.php?kategorie=automobily&podkategorie=fiat&typ=p

kdy
auto = kategorie=automobily
audi + fiat = podkategorie=audi + podkategorie=fiat
prodam = typ=n
koupim = typ=p

zároveň v tom potřebuju ošetřit, aby se to dělo jen v případě, kdy adresa neobsahuje /inzerat/

Dále potřebuju vyzobat ID inzerátu z URL a podstrčit správnou stránku. Nyní to dělám (špatně) a to tak, že při zavolání auto.domena.cz/inzerat/nazev-inzeratu podstrčím "nazev-inzeratu" namísto ID

viz:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/inzerat/
RewriteRule ^inzerat/([^/]+)/?$ inzerat.php?id=$1

nyní $1 obsahuje "nazev-inzeratu" ale potřebuji to udělat jinak: při volání auto.domena.cz/inzerat/12345678/nazev-inzeratu potřebuji podstrčit stránku
inzerat.php?id=123456789&nazev=nazev-inzeratu

Díky za jakoukoliv pomoc, googlil jsem hodně a už mi z toho jde hlava kolem

M.
Davex
Profil
Myslím, že to řešíš zbytečně složitě a nevhodným způsobem. Nebylo by lepší, aby routování dělal PHP skript a v .htaccess bylo jen jedno jednoduché pravidlo?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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