Вот совет: вам не нужно делать перенаправление на самом деле .
Просто имейте один vhost, который обрабатывает оба домена.
Просто выполните внутреннюю перезапись, и она будет работать.
Вот микс моего собственного виртуального хоста (, который обрабатывает domain.com
и все *.domain.com
) и того, что вы хотите (это может не сработать на 100%, но эй, я дам вам два совета после ):
<VirtualHost *>
ServerAdmin webmaster@domain.fr
DocumentRoot "/web/htdocs/domain/prod/website"
ServerName domain.com
ServerAlias *.domain.com
ErrorLog "/web/logs/domain.error.log"
CustomLog "|/opt/httpd/bin/rotatelogs /web/logs/domain/access_log.%Y-%m-%d-%H_%M_%S.log 5M" combined
# your RewriteRules ()
RewriteEngine On
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/domain.rewrite.log"
RewriteLogLevel 9
# Your RewriteRules ()
RewriteCond %{HTTP_HOST} ^wiki.domain.com$
RewriteRule ^/forum/(.*) /wiki/index.php?wiki/index$1 [QSA,L]
</VirtualHost>
Два совета:
Если вы находитесь не в размещенной среде (= если это ваш собственный сервер и вы можете изменять виртуальные хосты, а не только файлы .htaccess
), попробуйте использовать директиву RewriteLog
: она помогает вам отслеживать по таким проблемам:
# 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)!)