0

我刚刚转换了一个包含数千个错误链接的网站,并且我一直在清理数以万计的索引错误,其中一些带有重定向 301,有些带有 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 开头的旧 URL 需要重定向到新的常见问题页面。但是,我不希望这适用于上面的文章。

有没有办法可以重写 RedirectMatch 规则,以便仅重定向以 /faq 开头的 URL,而不是请求 URL 中间的某个位置?

谢谢!

4

1 回答 1

1

使用插入符号匹配路径的开头:

RedirectMatch 301 ^/faqs?(.*) http://www.belleviewanimalclinic.com/pet-care-faqs/

我通过将“s”设为可选(通过在其后加上“?”)将这两行合并为一条。插入符号应该使路径必须以 faq 开头,而不仅仅是包含它。

注意:我最初删除了起始斜线,因为匹配字符串通常在起始斜线之后开始,但是我更习惯于 RewriteRules 而不是 RedirectMatches,我相信行为可能会有所不同。

于 2013-02-07T21:45:08.087 回答