我在网站上切换了博客软件(MT到WordPress),需要将请求重定向到http://www.domain1/atom.xml到http://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]
我关闭了吗?
谢谢, 富
答案 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。
这是域名的根源......
好吧,好吧。谁能解释为什么这有效?传递给模式匹配的字符串是否不包含起始斜杠?谢谢, 富