我刚刚转换了一个有数千个不良链接的网站,我一直在清理成千上万的索引错误,其中一些是重定向301s,另一些是RedirectMatch。但是,我收到一个令我困惑的错误。
.htaccess文件中的这两行代码中的任何一行
RedirectMatch 301 /faqs(.*) http://www.belleviewanimalclinic.com/pet-care-faqs/
RedirectMatch 301 /faq(.*) http://www.belleviewanimalclinic.com/pet-care-faqs/
导致此页面
http://www.belleviewanimalclinic.com/denver-veterinarian-articles/faqs-about-pet-dentistry/
重定向到这里
http://www.belleviewanimalclinic.com/pet-care-faqs/
有很多以/ faqXXXXXX开头的旧网址需要重定向到新的常见问题页面。但是,我不希望这适用于上述文章。
有没有办法可以重写RedirectMatch规则,以便只重定向以/ faq开头的URL,而不是请求URL中间的某个地方?
谢谢!
答案 0 :(得分:1)
使用插入符号匹配路径的开头:
RedirectMatch 301 ^/faqs?(.*) http://www.belleviewanimalclinic.com/pet-care-faqs/
我通过使“s”可选(将其跟随“?”)将两行合并为一行。插入符号应该是这样的,所以路径必须以faq开头,而不仅仅包括它。
注意:我最初删除了开始斜杠,因为匹配字符串通常在开始斜杠之后开始,但是我更习惯于RewriteRules而不是RedirectMatches,我相信行为可能会有所不同。