【问题标题】:Remove directory name from URL using htaccess but keep parent page使用 htaccess 从 URL 中删除目录名称但保留父页面
【发布时间】:2020-05-11 10:43:46
【问题描述】:

使用 htaccess 从 URL 中删除目录名称,但保留父页面。

https://www.example.com/faqs/page1/
https://www.example.com/faqs/page2/
https://www.example.com/faqs/page3/
https://www.example.com/faqs/page4/
https://www.example.com/faqs/page5/
https://www.example.com/faqs/page6/

https://www.example.com/page1/
https://www.example.com/page2/
https://www.example.com/page3/
https://www.example.com/page4/
https://www.example.com/page5/
https://www.example.com/page6/

但是

https://www.example.com/faqs/ 

保持不变。

我试过了

RedirectMatch 301 ^/faqs/(.*)$  https://www.example.com/$1

但它会让

https://www.example.com/faqs/ 

也重定向到主页。

【问题讨论】:

  • 向我们展示您的尝试
  • .+ 而不是 .*...

标签: regex .htaccess redirect


【解决方案1】:
RedirectMatch 301 ^/faqs/(.*)$  https://www.example.com/$1

要排除/faq/ URL,您只需在捕获子模式中将*(0 或更多)量词更改为+(1 或更多),因此只有/faqs/<something> 匹配,而不是/faqs/<anything> .例如:

RedirectMatch 301 ^/faqs/(.+)$  https://www.example.com/$1

您需要在测试前清除浏览器缓存。

【讨论】:

  • 这有效吗?因为我收到此页面无法正常工作
  • @user9437856 是的,这“有效”。但是,.htaccess 中的指令顺序很重要——您可能与其他指令有冲突?您所说的“此页面无法正常工作”到底是什么意思?你得到一个 redirect-loop 吗?该指令本身不会导致重定向循环。
  • 我的网站上只有一个自定义帖子,我尝试了您的代码,但我得到这个页面在加载后无法正常工作
  • @user9437856 如果您还有其他问题,请提出其他问题(您可以在 cmets 中 ping 我)。确保包含所请求的 URL 以及您获得的准确响应。并包含您完整的 .htaccess 文件和该指令。我的回答中的指令实际上没有任何问题。您的配置中可能还有其他问题导致问题。 “自定义帖子” - 听起来您正在使用某种 CMS?如果是这样,那么您可能有 mod_rewrite 指令。 RedirectMatch 是一个 mod_alias 指令 - 因此可能会导致冲突。
  • 我认为你是对的,我要问一个新问题。但是让我试试你上面的建议。感谢您的帮助。
猜你喜欢
  • 2019-06-19
  • 2020-05-11
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多