【问题标题】:Htaccess redirect only top level URLHtaccess 仅重定向顶级 URL
【发布时间】:2023-01-12 01:23:36
【问题描述】:

我想使用 htaccess 重定向顶级页面,但不重定向层级页面。让我解释。我目前有这个重定向:

Redirect 301 /support /donate

总之,我希望有人在访问/support时被重定向到/donate。但是,如果有人访问此规则:

https://www.example.com/support/test

他们被重定向到:

https://www.example.com/donate/test

我不希望他们在这些情况下被重定向——只有当他们访问/support/support/(注意尾部斜杠)时。

我不确定该怎么做,或者这是否可能。有任何想法吗?

【问题讨论】:

    标签: .htaccess redirect mod-alias


    【解决方案1】:

    Redirect 指令是前缀匹配的,因此您需要改用 RedirectMatch 指令,它与正则表达式匹配。

    例如:

    RedirectMatch 301 ^/support/?$ /donate
    

    以上匹配 /support/support/ 并在这两种情况下重定向到 /donate。请注意,先前的 Redirect 指令将重定向到 /donate/donate/,具体取决于初始请求中是否有尾部斜杠。

    您需要在测试前清除浏览器缓存,因为任何错误的 301(永久)重定向都将被浏览器永久缓存。首先使用 302 进行测试以避免潜在的缓存问题。

    参考:

    【讨论】:

      猜你喜欢
      • 2015-12-23
      • 1970-01-01
      • 2014-02-18
      • 2012-03-14
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 2014-10-28
      相关资源
      最近更新 更多