重写httpd.conf中的规则(Apache)

时间:2014-07-11 02:37:50

标签: linux apache mod-rewrite rewrite httpd.conf

我目前正在迁移到新服务器。我想将域从旧服务器指向新服务器。一些旧内容将存在于旧服务器上,现在将侦听新的子域。该服务器应将所有流量转发回除新的和更新的文件之外的子域(旧服务器),例如,所有流量都来自" domain.com"和" www.domain.com"应重定向到" oldsite.domain.com"排除许多目录,例如/新闻室

我把它放在一起,但我不确定它是否有效。非常感谢任何建议。

RewriteCond %{http_host} !^www.domain.com$
RewriteCond %{REQUEST_URI} !^/search [OR]
RewriteCond %{REQUEST_URI} !^/newsroom
RewriteRule ^/(.*)$ http://oldsite.domain.com/$1 [L]

更新: 此修改现在有效:

RewriteCond %{HTTP_HOST} !^.*\.domain\.com
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !^/(search|newsroom).*$
RewriteRule ^(.*)$ http://site.domain.com/$1 [R=302,L,NE]

效果很好。再次感谢。

1 个答案:

答案 0 :(得分:0)

请改为尝试:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?domain\.com
RewriteRule ^(?!(?:search|newsroom))[^/] http://oldsite.domain.com%{REQUEST_URI} [R=302,L,NE]