我有一个带有slug的自定义帖子类型:https://mysitename.org/change-wire/post-name-here。现在CPT有这样的slu :: https://mysitename.org/changewire/post-name-here。
基本上,slu is从 change-wire 更改为 changewire 。我想自动重定向任何旧的换线。我认为可能的解决方案是使用RedirectMatch规则,但我不确定这是否正确:
我只能为一个帖子做这件事,但我需要为所有帖子
这适用于一个:
Redirect 301 https://mysitename.org/change-wire/post-name-here https://mysitename.org/changewire/post-name-here
如何使用change-wire / {post-name}更改changewire / {post-name} ???
使所有帖子都能正常工作 RedirectMatch 301 ???
答案 0 :(得分:2)
您可以使用REGEX执行此操作:
RedirectMatch 301 /old-slug/(.*) /newslug/$1
在你的情况下
RedirectMatch 301 /change-wire/(.*) /changewire/$1
下面,
(。*)是一个通配符,它匹配/ old-slug /之后出现的任何内容,并保存它以在目标URL中使用,$ 1从源URL表达式输出第一个通配符。
答案 1 :(得分:0)
使用RedirectMatch
执行此操作,因为它使用了正则表达式:
RedirectMatch 301 /change-wire/(.*) /changewire/$1
如果有更多目录,例如anything-anything
,你可以这样做:
RedirectMatch 301 /(.+)-(.+)/(.*) /$1$2/$3
注意:清除浏览器缓存然后进行测试并确保没有其他规则阻止执行这些操作。
答案 2 :(得分:0)
试试这个:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)/change-wire/(.*)$ $1/changewire/$2 [R,L]
希望这会有用......