.htaccess重定向 - 具有相似路径的两个URL

时间:2013-03-25 13:24:04

标签: .htaccess redirect rewrite

所以这就是我所拥有的。

  • www.website.com/foo(用于营销部分的漂亮网址)
  • www.website.com/foobar(网站上实际存在的网址)

我可以通过www.website.com/foo完美地完成这项工作:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /foo [NC]
RewriteRule ^ http://www.website.com/redirected/url-goes-here/   [L,R=301]

但这也使www.website.com/foobar网址也在那里。

我确定这是一个正则表达式问题,我只是不知道正确的符号才能使事情正常工作,但是如何在不影响/ foobar的情况下正确地重定向/ foo?

感谢。

2 个答案:

答案 0 :(得分:1)

请改为尝试:

RewriteCond %{REQUEST_URI} ^/foo$ [NC]
RewriteRule ^ http://www.website.com/redirected/url-goes-here/   [L,R=301]

REQUEST_URI将删除THE_REQUEST所拥有的额外请求标头。然后,您可以将请求的网址的开头和结尾与^$匹配。

答案 1 :(得分:0)

您不需要RewriteCond。只需具体RewriteRule模式

即可
RewriteRule ^foo$ http://www.website.com/redirected/url-goes-here/   [L,R]

详细了解regular expression

永远不要在启用301的情况下进行测试,请参阅此回答Tips for debugging .htaccess rewrite rules了解详细信息。