如何修改.htaccess文件以仅重定向一个域的URL,而不是重写由同一服务器托管的其他域

时间:2011-10-14 05:26:56

标签: wordpress .htaccess movabletype

我在网站上切换了博客软件(MT到WordPress),需要将请求重定向到http://www.domain1/atom.xmlhttp://www.domain1.com/feed/atom

我使用的是一个简单的Redirectmatch规则,但意识到它还将请求重定向到另一个站点(domain2),即由服务器托管在domain1的子目录中,我不想发生这种情况(其中Feed仍在http://www.domain2.com/atom.xml)。

如何才能将重定向仅发生在domain1?

我试图执行以下操作,但它无效。

RewriteCond %{HTTP_HOST} ^www\.domain1\.com [NC]
RewriteRule ^/atom\.xml$  http://www.domain1.com/feed/atom [L,R=301]

我关闭了吗?

谢谢, 富

2 个答案:

答案 0 :(得分:0)

如果您没有对domain2进行任何重写,那么快速解决方法是在其根文件夹中创建.htaccess文件,并禁用RewriteEngine off重写。

否则你与RewriteCond走在正确的道路上,它应该可以解决问题。您是否尝试在最后添加$RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC])/任何拼写错误/ www.与否www.

答案 1 :(得分:0)

我明白了,但我不确定为什么会这样。我把我的.htaccess移动到了:

RewriteCond %{HTTP_HOST} ^www\.domain1\.com [NC]
RewriteRule ^atom\.xml$  http://www.domain1.com/feed/atom [L,R=301]

我在RewriteRule中删除了“atom”前面的斜杠。

我认为我应该使用斜杠,因为我要重定向http://www.domain1.com/atom.xml

这是域名的根源......

好吧,好吧。谁能解释为什么这有效?传递给模式匹配的字符串是否不包含起始斜杠?

谢谢, 富