301 RewriteRule 在 OpenLiteSpeed 中完美运行,但只有 95% 的时间

Posted

技术标签:

【中文标题】301 RewriteRule 在 OpenLiteSpeed 中完美运行,但只有 95% 的时间【英文标题】:301 RewriteRule works perfect in OpenLiteSpeed, but only 95% of the time 【发布时间】:2020-12-15 11:38:58 【问题描述】:

此 Wordpress 安装以前的固定链接结构为 year/mo/day/post-name,但后来更改为仅使用帖子名称。这个 301 RewriteRule 被添加到 htaccess 的顶部,它在大多数情况下都很好用,但在几个链接上仍然失败,在 URL 中留下了 day 值。

RewriteRule ([0-9]4)\/([0-9]2)\/(.*) domain.com/$3 [R=301,L]

我不知道是什么原因导致了这种情况,大多数重定向到 domain.com/post-name 符合预期,但少数返回为 domain.com/08/post-name 例如。

被忽略的正则表达式是否存在问题?

【问题讨论】:

你的意思是“domain.com/08/post-name”没有重定向,或者“/2020/08/08/post-name”重定向到“/08/post-name”? @qtwrk 抱歉,这是第二个。 “/2020/08/08/post-name”正在重定向到“/08/post-name” 【参考方案1】:

如果您的所有帖子格式相同,如/2020/01/01/post-name

然后尝试使用

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

如果您混淆了 /2020/01/01/post-name/2020/01/post-name 的 URL

然后尝试使用

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

【讨论】:

以上是关于301 RewriteRule 在 OpenLiteSpeed 中完美运行,但只有 95% 的时间的主要内容,如果未能解决你的问题,请参考以下文章

RewriteRule 301重定向整个目录和子目录

RewriteRule ^(.*)$ 和 RewriteRule (.*)$ 之间的区别

高分请教.htaccess规则写法..URL 301

apache将不带www域名301重定向到带www的域名的配置方法

RewriteCond与RewriteRule用法

htaccess移动重定向