Код, который вы опубликовали, не может быть перенаправлен на www.example.irforum
(без косой черты). Фактически, код, который вы опубликовали, ничего не сделает (поскольку ни один из условий не будет соответствовать). Если вы видите перенаправление, то это, возможно, ранее кэшированное (ошибочное) перенаправление.
Предполагая example.com
и example.ir
указывают на то же место, то попробуйте следующее в вашем файле .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^forum(.*) http://www.example.ir/forum$1 [R=302,L]
Вышеуказанные правила обрабатываются следующим образом:
- Имеет ли URL-путь (за исключением префикса каталога) запроса соответствуют
RewriteRule
pattern^forum(.*)
? Если да, то продолжайте ...
- Соответствует ли переменная сервера
HTTP_HOST
CondPattern. то есть. Является ли заголовок Host
либо www.example.com
, либо example.com
? Если это так, то продолжить ...
- Перенаправить запрос на
http://www.example.ir/forum$1
- это RewriteRule
Замена. $1
относится к захваченной группе (первый скобленный подшаблон) в шаблоне RewriteRule
- т.е. любые соответствия (.*)
.
Если example.com
и example.ir
точка на разных серверах, то вам не нужно RewriteCond
директиву.
Тест с 302 (временными) перенаправлением, пока вы не уверены, что он работает нормально, а затем измените на 301 (постоянный). Или, тест с кешированием браузера отключен.
Переменная HTTP_HOST
содержит только заголовок HTTP Host
. например. example.com
. Это не содержит информации о пути. Используйте шаблон RewriteRule
, чтобы соответствовать URL-адресу.
Ничего себе, это работает как шарм, большое спасибо BTW, как я могу узнать логику mod-rewrite? понять, что вы предоставили? –
Много проб и ошибок, тестирование и допрос всего! :) [Документы Apache] (http://httpd.apache.org/docs/current/mod/mod_rewrite.html), возможно, слишком кратки во многих областях, но с несколькими примерами, однако, они являются неоценимой ссылкой.Сложные перезаписи часто связаны с сложным регулярным выражением, которое документы Apache не распространяются вообще. [regular-expressions.info] (http://www.regular-expressions.info/) - мой ресурс goto для регулярного выражения. [askapache.com] (http://www.askapache.com/) - отличный ресурс с множеством фрагментов кода и необработанными примерами, но мало объяснений. Я добавлю больше объяснений в свой ответ ... – MrWhite