【问题标题】:Changing RedirectMatch to RewriteRule for OpenLiteSpeed将 RedirectMatch 更改为 OpenLiteSpeed 的 RewriteRule
【发布时间】:2020-12-04 12:32:26
【问题描述】:

更改 Wordpress 永久链接结构后,我在 .htaccess 文件中使用 RewriteMatch 为所有页面创建 301 重定向。

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/)(.+)$ https://mywebsite.com/$4

我最近切换到 OpenLiteSpeed,发现这不再有效。有人确认 OLS 忽略了 RedirectMatch 规则并建议切换到 RewriteRule,所以我使用了 htaccess tester tool 并将以下内容放在一起。

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(?!page/) $4 [QSA,L]

我没有太多编写规则的经验,但该工具显示了正确的输出。但是,将其添加到我的 .htaccess 文件后,它仍然无法正常工作。我已经重新启动了 OLS,但没有任何变化。

我正在尝试找出规则是否有问题(即与 litespeed 不兼容),或者这是否与 OLS 网络服务器有关?

【问题讨论】:

    标签: .htaccess redirect mod-rewrite http-status-code-301 litespeed


    【解决方案1】:

    请尝试在您的 .htaccess 顶部添加此规则

    RewriteRule ([0-9]{4})\/([0-9]{2})\/(.*) https://example.com/$3 [R=301,L]

    添加后重启OLS。

    【讨论】:

    • 效果很好!我不需要打开 RewriteEngine 和设置 +FollowSymLinks 标志吗?似乎没有它们也可以工作,但只是想确定一下。非常感谢:)
    • 实际上,不需要引擎,而且选项甚至根本无法在 OLS 上运行...... OLS 仅读取 rewriterulerewritecond ,其他任何内容都被丢弃了。
    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多