Пожалуйста, попробуйте заполнить файл перезаписи карты (см. здесь ), чтобы соответствовать URL-адресам, которые являются частью вашего "восточного" домена.Вы можете объявить это так:
RewriteMap mapmaintoeast \
dbm:/web/htdocs/yoursite/rewriterules/mapmaintoeast.map
Что касается вашего образца, ваш файл карты может быть заполнен такими вещами, как:
eastlocation1 mainlocation1
eastlocation2 mainlocation2
eastlocation3 mainlocation3
...
Я назвал их 'восточными' и 'основнымиРазличать четко.Эти примеры должны быть URL-адресами.
Сделайте то же самое для запада:
RewriteMap mapmaintowest \
dbm:/web/htdocs/yoursite/rewriterules/mapmaintowest.map
В этом файле:
westlocation1 mainlocation4
westlocation2 mainlocation5
westlocation3 mainlocation6
...
Затем перейдем к сложной части.:
# This cond put any non-empty string into "%1" (= parenthesis + first cond):
RewriteCond %{QUERY_STRING} (.+)
# The following rule doesn't touch the URL, but
# will try to search into the map file and
# create fill an environment variable called MAINTOEAST with the
# string found and if not found, assign MAINTOEAST to "notfound"
RewriteRule . - [QSA,E=MAINTOEAST:${mapmaintoeast:%1|notfound}]
# if MAINTOEAST not empty and different from "notfound":
RewriteCond %{ENV:MAINTOEAST} !^$
RewriteCond %{ENV:MAINTOEAST} !(notfound)
# ok found => redirect to east:
RewriteRule (.*) http://east.example.com$1 [QSA,R=301,L]
# Now do the same with west (no comments needed (see previous)):
RewriteCond %{QUERY_STRING} (.+)
RewriteRule . - [QSA,E=MAINTOWEST:${mapmaintowest:%1|notfound}]
RewriteCond %{ENV:MAINTOWEST} !^$
RewriteCond %{ENV:MAINTOWEST} !(notfound)
RewriteRule (.*) http://west.example.com$1 [QSA,R=301,L]
Это должно работать.Я надеюсь, что дал вам достаточно подсказок, чтобы закончить работу;) Если вам не хватает подсказок ...
Два совета:
Пожалуйста, попробуйте использовать *Директива 1025 *: она помогает вам отследить такие проблемы:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
Мой любимый инструмент для проверки регулярных выражений:
http://www.quanetic.com/Regex (не забудьтевыбрать ereg (POSIX) вместо preg (PCRE)!)