使用正则表达式从 301 重定向中的 URL 中删除最后一个 slug

Remove the last slug from URL in 301 redirect with regex

提问人:mbs1337 提问时间:8/30/2023 最后编辑:mbs1337 更新时间:8/30/2023 访问量:42

问:

希望你们能帮上忙。我现在正对着砖墙

我想要的是这个:

此 URL 应删除 URL 中的最后一个 slug (月份) 然后将“event”改写为“vare”

https://domain.dk/event/svampetur-roskilde/2023-08-26/

对此

https://domain.dk/vare/svampetur-roskilde/

我可以很容易地通过这个重定向来做这个“事件”来“vare”。

# 301 --- ^/event/* => /vare/
RewriteRule ^\^/event/\*$ /vare/? [L,R=301]

但这并不是删除带有日期的最后一条路径。

谁能帮助我朝着正确的方向前进?

正则表达式 .htaccess 重定向

评论

0赞 CBroe 8/30/2023
“使用此重定向” - 这不是执行任何重定向的实际代码,而只是其中的一部分。所以我们现在不知道你实际使用了什么指令。请展示您使用的实际代码,而不仅仅是其中的片段。
0赞 mbs1337 8/30/2023
哦,我的错。这是因为我只是使用 Wordpress 重定向进行此测试,因为我懒得直接在 htaccess 中进行。我使用的实际代码在这里: # 301 --- ^/event/* => /vare/ RewriteRule ^\^/event/*$ /vare/?[L,R=301]
0赞 CBroe 8/30/2023
^\^/event/\*$不应与输入的 URL 匹配。不知道你一开始想用什么来实现。^\^
0赞 MrWhite 8/30/2023
“last slug in URL (the month)” - 应为“last path-segment (the date, )”。“蛞蝓”可以是任何东西,但通常指的是一个头衔YYYY-MM-DD

答:

1赞 mbs1337 8/30/2023 #1

我问 ChatGPT,因为我很难在这里解释我想要什么。 这就是它从 4 中得出的。答。

enter image description here

RewriteEngine On
RewriteRule ^event/(.+)/\d{4}-\d{2}-\d{2}/?$ /vare/$1/ [R=301,L]

评论

0赞 MrWhite 8/30/2023
由于您似乎在 WordPress 网站上使用它,因此您需要确保此规则位于文件顶部(在 WordPress 代码块之前)。.htaccess
0赞 mbs1337 8/31/2023
是的,原因。每个 301 重定向都假定位于文件顶部。谢谢:)
0赞 Adrian Mole 9/2/2023
请注意,目前禁止在 Stack Overflow 上发布 ChatGPT 生成的内容。