.htaccess mod_将server.com/directory重写为new.com/directorynew/directory

.htaccess mod_将server.com/directory重写为new.com/directorynew/directory,.htaccess,mod-rewrite,redirect,httpd.conf,.htaccess,Mod Rewrite,Redirect,Httpd.conf,我正在把一切都转移到一个新的领域。如果旧域的url为,我希望它重定向到位于的另一台服务器 否则,如果请求路径的第一个参数不是“article”,只需更改域名并重定向即可 这是我的建议: RewriteRule ^/article/(.*)$ http://anotherserver.com/extradir/article/$1 [R=301,L] RewriteRule ^(.*)$ http://anotherserver.com$1 [R=301,L] 第一个永远不会匹配。第二个很好用

我正在把一切都转移到一个新的领域。如果旧域的url为,我希望它重定向到位于的另一台服务器

否则,如果请求路径的第一个参数不是“article”,只需更改域名并重定向即可

这是我的建议:

RewriteRule ^/article/(.*)$ http://anotherserver.com/extradir/article/$1 [R=301,L]
RewriteRule ^(.*)$ http://anotherserver.com$1 [R=301,L]
第一个永远不会匹配。第二个很好用

它位于Drupal上,位于httpd.conf中RewriteEngine on指令的正下方,以避免使用Drupal指令

这在httpd.conf而不是.htaccess中


你知道为什么顶级重写规则不起作用吗?

不知道为什么你的第一条规则不起作用,如果我把它放在vhost配置中,它对我很有用。您是否尝试过使用
重定向匹配

RedirectMatch 301 ^/article/(.*)$ http://anotherserver.com/extradir/article/$1
RedirectMatch 301 ^(.*)$ http://anotherserver.com$1

你知道,有时候你需要一个人来表达你的沮丧。这个重定向确实有效。问题是我的重定向代码在错误的指令中。因此,它正在工作,但不在服务器的docroot中。感谢您在不同的服务器上测试我的mod_重写规则--乔