apache - 防止 htaccess 301 重定向中的通配符
问题描述
我已经设置了一个 htaccess 301 重定向来将索引页面重定向到一个新页面,但这也充当了子页面的通配符重定向,我不知道会发生什么。
旧结构
- example.com/faq
- example.com/faq/question-1
- example.com/faq/question-2
- 等等等等
新结构
- example.com/faqs
- example.com/faq/question-1
- example.com/faq/question-2
- 等等等等
htaccess 重定向到位:
Redirect 301 /faq/ https://example.com/faqs/
这可以毫无问题地将 /faq 发送到 /faqs 但是它也将 /faq/* 发送到 /faqs/* ,这是我不希望发生的。
例如,去example.com/faq/question-1会导致一个 to many redirects 错误,最后登陆example.com/faqs/question-1
有什么我可以添加到单个重定向行来防止这种情况发生的,还是我可以使用它们更复杂的 RewriteRule 使用。对此事的研究最初似乎证实了这应该/将会发生,如果确实如此,可以添加什么来防止它。在提示 apache 文档后,我可以看到为什么它们会重定向为通配符。
解决方案
在 CBroe 建议使用RedirectMatch的实现之后。
RedirectMatch 301 ^/faq/$ https://example.com/faqs
现在这会将 /faq 重定向到 /faqs,但不会将 /faq/question-1 重定向到 /faqs/question-1 等
推荐阅读
- python - 获取 AttributeError:“list”对象在将 .log 文件格式转换为 .json 格式时没有属性“split”
- python - Python ruamel 不保留 yaml 中换行符的格式
- mysql - 累积和作为依赖子查询
- string - 如何在 Dart 中连接两个字符串?
- events - 失去对我的事件处理函数中所有内容的引用
- json - 将 json 从 ajax 传递到 laravel 控制器
- google-app-engine - 如何获取导出 Cloud Datastore 的结果详情?
- angular - Ionic 4 页面未在导航上更新
- html - 改变