как перенаправить в первую очередь, а затем переписать с помощью mod_rewrite - PullRequest
0 голосов
/ 20 июля 2010

У меня есть два домена, указывающие на один и тот же хост, например example1.com и example2.com.

У меня уже есть перенаправление:

RewriteRule ^ ([A-Za-z0-9 -] +) / $ page.php? Q = $ 1 [L]

, чтобы поймать такие вещи, как example1.com/hello-world/ => example.com/page.php?q=hello-world

Теперь мне нужно выполнить 3 условия:

1) example1.com/special/ => example2.com/special/ [ТОЛЬКО для «special»]2) example2.com/ => example2.com/special/3) example2.com/anything-not-special/ => example1.com/anything-not-special/

Я могу добиться этого, за исключением того, что я хочу именно то, что находится в правом столбце здесьотображаться в строке URL.Вместо этого я получаю: example2.com/special/ => example1.com/page.php?q=special

, что не идеально для меня.

Любая помощь приветствуется, спасибо!

1 Ответ

1 голос
/ 20 июля 2010

Посмотрите, делает ли это то, что вы хотите:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/page\.php
RewriteCond %{HTTP_HOST}%{REQUEST_URI} =example1.com/special/ [OR]
RewriteCond %{HTTP_HOST}%{REQUEST_URI} =example2.com/
RewriteRule ^.*$ http://example2.com/special/ [R=301,L]

RewriteCond %{REQUEST_URI} !^/page\.php
RewriteCond %{HTTP_HOST}    =example2.com
RewriteCond %{REQUEST_URI} !=/special/
RewriteRule ^.*$ http://example1.com%{REQUEST_URI} [R=301,L]

RewriteRule ^([A-Za-z0-9-]+)/$ page.php?q=$1
...