Autor Zpráva
Rich
Profil
Problém je v tom, že každé pravidlo, které má stejný počet parametrů (tady 2) přebije nasledující. První pg, news, polozka funguje a pak pg, news taky, ale problém nastane u pg, ok, kde už se podstránky nezobrazí, pouze se přepíše v panelu adres název z index.php?pg=neco&ok=neco na neco/neco/. Jeden parametr (předposlední skupina) funguje a přidávání lomítka na konec je taky ok.

Pokud někoho napadne, kde co dělám špatně, tak vám budu vděčný.

RewriteEngine On
RewriteBase /cent/web

RewriteCond %{QUERY_STRING} ^pg=([^&]+)&news=([^&]+)&polozka=([^&]+)$
RewriteRule ^index\.php$ %1/%2/%3? [R=301,L,NE]
RewriteRule ^([^/]+)/([^/]+)/[^/]+-([0-9]+)/$ index.php?rw=1&pg=$1&news=$2&polozka=$3 [L,QSA]

RewriteCond %{QUERY_STRING} ^pg=([^&]+)&news=([^&]+)$
RewriteRule ^index\.php$ %1/%2? [R=301,L,NE]
RewriteRule ^([^/]+)/([^/]+)/$ index.php?rw=1&pg=$1&news=$2 [L,QSA]

RewriteCond %{QUERY_STRING} ^pg=([^&]+)&ok=([^&]+)$
RewriteRule ^index\.php$ %1/%2? [R=301,L,NE]
RewriteRule ^([^/]+)/([^/]+)/$ index.php?rw=1&pg=$1&ok=$2 [L,QSA]

RewriteCond %{QUERY_STRING} ^pg=([^&]+)&at=([^&]+)$
RewriteRule ^index\.php$ %1/%2? [R=301,L,NE]
RewriteRule ^([^/]+)/([^/]+)/$ index.php?rw=1&pg=$1&at=$2 [L,QSA]

RewriteCond %{QUERY_STRING} ^pg=([^&]+)$
RewriteRule ^index\.php$ %1? [R=301,L]
RewriteRule ^([^/]+)/$ index.php?rw=1&pg=$1 [L,QSA]

RewriteCond %{REQUEST_URI} !\.[[:alnum:]]+$ 
RewriteRule ^(.+[^/])$ $1/ [R=301]
Kajman_
Profil *
Musíte si vymyslet, jak se má poznat, jestli to je news, nebo ok nebo at.
Rich
Profil
Kajman:No problém bude na mé straně, mod_rewrite se zaobírám jen chvíli, tak nevím jaké pravidlo a jak ho do kódu vměstnat.
Kajman_
Profil *
O tom to není. Musíte si uvědomit, že když přijde
/neco/neco/
tak to chcete dávat třem různým skriptům, ale musíte taky nějak poznat, kterému konkrétnímu to chcete předat.

Až budete mít toto vymyšlené, tak je teprve možné to zapisovat do pravidel rewrite.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0