当url匹配某些模式时,如何重定向到另一个域除外

时间:2013-10-07 13:58:36

标签: regex apache .htaccess mod-rewrite redirect

我的.htaccess文件中有以下规则应该重定向这样的请求:

http://www.olddomain.com/some/url/ - > http://www.newdomain.com/some/url/

除非路径与/images/someimage.jpg

类似

这样的一些例外,内置于规则中:

RewriteRule ^(?!images/.*|css/.*|js/.*) http://www.newdomain.com/$1 [R=301,L]

当我使用http://htaccess.madewithlove.be/

进行测试时,此操作符合预期

但是,在实时服务器上,永远不会设置$ 1。与模式匹配的网址只会重定向到主页“/”

RewriteEngine On

之后,这是我的htaccess文件的第一条规则

1 个答案:

答案 0 :(得分:1)

用以下内容替换您的规则:

RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/((images|css|js)/ [NC]
RewriteRule ^ http://www.newdomain.com%{REQUEST_URI} [R=301,L]