WordPress:重定向使用 .htaccess 从 url 中删除日期

发布于 2025-01-11 20:19:11 字数 966 浏览 0 评论 0原文

我在使用 WordPress 时遇到重定向问题,并从 URL 中删除了日期:

旧:
https://www.example.de/2022/03/03/here-is-the-article-name-2582/

新:
https://www.example.de/here-is-the-article-name-2582/

重定向错误:
https://www.example.de/03/

他始终在“day”路径上重定向。

这里是我的.htaccess测试:

########### REDIRECT 301 ############
RewriteEngine on
RewriteBase /

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$3 [R=301,NC,L]
RewriteRule ^category(/.*|)$ /kategorie/$1 [R=301,L,NC]
RewriteRule ^tag(/.*|)$ /schlagwort/$1 [R=301,L,NC]

#RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$4

########### ALTE URL mit DATUM - REDIRECT 301 - OHNE Datum ############
#<IfModule mod_rewrite.c>
#   RewriteEngine On
#   RewriteBase /
#   RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$3 [R=301,NC,L]
#</IfModule>

我该怎么做才能正确路由?

I have a redirect problem with WordPress and removing the date from the URL:

OLD:
https://www.example.de/2022/03/03/here-is-the-article-name-2582/

NEW:
https://www.example.de/here-is-the-article-name-2582/

Redirect ERROR:
https://www.example.de/03/

he redirect all the time on the "day" path.

here my .htaccess test:

########### REDIRECT 301 ############
RewriteEngine on
RewriteBase /

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$3 [R=301,NC,L]
RewriteRule ^category(/.*|)$ /kategorie/$1 [R=301,L,NC]
RewriteRule ^tag(/.*|)$ /schlagwort/$1 [R=301,L,NC]

#RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$4

########### ALTE URL mit DATUM - REDIRECT 301 - OHNE Datum ############
#<IfModule mod_rewrite.c>
#   RewriteEngine On
#   RewriteBase /
#   RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$3 [R=301,NC,L]
#</IfModule>

What can I do for the correct routing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦冥 2025-01-18 20:19:11

这个重定向 301 现在对我有用:

########### REDIRECT 301 ############
RewriteEngine on
RewriteBase /

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$4 [R=301,NC,L]
RewriteRule ^category(/.*|)$ /kategorie/$1 [R=301,L,NC]
RewriteRule ^tag(/.*|)$ /schlagwort/$1 [R=301,L,NC]

this redirect 301 works now for me:

########### REDIRECT 301 ############
RewriteEngine on
RewriteBase /

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$4 [R=301,NC,L]
RewriteRule ^category(/.*|)$ /kategorie/$1 [R=301,L,NC]
RewriteRule ^tag(/.*|)$ /schlagwort/$1 [R=301,L,NC]
够运 2025-01-18 20:19:11

我发现您发现了问题并更改了规则以使用第四个捕获组而不是第三个。

还有另一种解决方案。您可以通过删除不需要的括号来从规则中删除未使用的捕获组。然后您可以使用第一个(也是唯一一个)捕获组。

RewriteRule ^[0-9]+/[0-9]+/[0-9]+/(.*)$ /$1 [R=301,NC,L]

I see that you found the problem and changed your rule to use the fourth capturing group rather than the third.

There is another solution. You can remove unused capturing groups from your rule by removing unneeded parenthesis. Then you can us the first (and only) capturing group.

RewriteRule ^[0-9]+/[0-9]+/[0-9]+/(.*)$ /$1 [R=301,NC,L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文