所以这就是我所拥有的。
我可以通过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?
感谢。
答案 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了解详细信息。