.htaccess - .htaccess 使用正则表达式重定向

我想通过 .htaccess 设置重定向,如下所示:

https://example.net/xyz/* 中的所有页面都应重定向到 https://example.net/abc/

会是这样吗?

RedirectMatch 301 ^/xyz/ https://example.net/abc/

或者

Redirect 301 ^/xyz/.* https://example.net/abc/

有什么区别?

回答1

这两个都不对。

重定向匹配应该有一个捕获组,如:

RedirectMatch 301 ^/xyz/(.*) https://example.net/abc/$1

重定向指令根本不使用正则表达式。它的匹配总是“开始于”。这应该做你想要的:

Redirect 301 /xyz https://example.net/abc

在这种情况下,我更喜欢使用 Redirect 而不是 RedirectMatch,因为实际上并不需要正则表达式功能。

至于它是否有效,您可以尝试在 https://htaccess.madewithlove.com/ 之类的模拟器中测试规则,或者您可以启动一个临时服务器。提前测试是个好主意,尤其是在 .htaccess 文件中有其他规则的情况下。 Redirect 指令通常与 RewriteRule 指令冲突,如果同时使用这两种指令,则会导致意外行为。

相似文章

apache - .htaccess:要求所有拒绝不尊重

我已经阅读了面包师的十几个类似问题,其中发现的常见问题并没有帮助我解决这个问题。我真的可以使用一些帮助来解决这个问题。接下来我应该尝试什么?有没有办法解决为什么不遵守这些规则?这是带有WHM/cPan...

最新文章