.htaccess Htaccess仅重定向顶级URL

byqmnocz  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(204)

我想使用htaccess重定向顶级页面,但不重定向层页面。让我解释一下。我目前有这样的重定向到位:

Redirect 301 /support /donate

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

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

它们被重定向到:

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

我不希望他们在这些情况下被重定向-只有当他们访问/support/support/(注意尾随斜线)。
我不知道该怎么做或者是否可行。有什么想法吗?

ttp71kqs

ttp71kqs1#

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

RedirectMatch 301 ^/support/?$ /donate

上面的命令只匹配/support/support/,并且在两种情况下都重定向到/donate。注意,根据初始请求中是否有尾部斜杠,前面的Redirect指令将重定向到/donate/donate/
在测试之前,您需要清除浏览器缓存,因为任何错误的301(永久)重定向都将被浏览器永久缓存。首先测试302重定向,以避免潜在的缓存问题。
参考:

  • https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
  • https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirectmatch

相关问题