将 RedirectMatch 更改为 OpenLiteSpeed 的 RewriteRule

问题描述 投票:0回答:2

更改 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 测试工具 并将以下内容放在一起。

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

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

我试图弄清楚规则是否有问题(即与 litespeed 不兼容),或者这是否与 OLS Web 服务器有关?

.htaccess redirect mod-rewrite http-status-code-301 litespeed
2个回答
2
投票

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

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

添加后重新启动OLS。


0
投票

这应该是 [yy/mm/dd/title] 格式的正确形式

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

© www.soinside.com 2019 - 2024. All rights reserved.