Autor Zpráva
Sylar
Profil
Zdravím,
chtěl bych poprosit o pomoc s pravidlem, které by přesměrovalo uživatele v případě, že URL neobsahuje ihned na začátku stranka nebo podstranka.

Např.
- domena.cz/stranka/kategorie/ by zůstalo
- domena.cz/podstranka/jina-kategorie/ by také zůstalo
- domena.cz/uplne-jina-kategorie/stranka/ by se přesměrovalo na domena2.cz/uplne-jina-kategorie/stranka/
- domena.cz/kategorie/ by se přesměrovalo na domena2.cz/kategorie/

Dostal jsem se k tomuto, ale pro "podstranka" by se muselo vytvořit druhé pravidlo (ideálně bych byl rád, kdyby to šlo spojit do jednoho) a navíc se mi nedaří zachytit tu URL do proměnné $1.

#RewriteCond %{HTTP_HOST} ^(www\.)?domena.cz
#RewriteRule !^(stranka/.+)$ http://www.domena2.cz/$1 [R=301,L]
Kajman
Profil
S negací by mělo jít něco jako
RewriteCond %{HTTP_HOST} ^(www\.)?domena.cz
RewriteRule !^(stranka|podstranka)/.*$ http://www.domena2.cz/$0 [R=301,L,NE]


Případně lze před přesměrování udělat výjimku kombinací pomlčku s flagem S pro přeskočení následného pravidla, nebo flagem L pro úplné zastavení přepisování.
RewriteRule ^(stranka|podstranka)/ - [S]
RewriteCond %{HTTP_HOST} ^(www\.)?domena.cz
RewriteRule ^(.*)$ http://www.domena2.cz/$1 [R=301,L,NE]
Sylar
Profil
Kajman:
U toho prvního řešení mě to vždy přesměruje na domena2.cz - do proměnné $0 se nezachytí ta podstránka.

U druhého řešení mě to stále přesměrovává i v případě, že stránka začíná (stranka|podstranka).
Kajman
Profil
Ve druhém má být [S=1]
Sylar
Profil
Kajman:
Ještě jsem tam musel ve třetím řádku změnit (.*) na (.+), aby mi to nebralo i homepage domena.cz, ale jinak to vypadá, že to už funguje. Mockrát děkuju.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0