将旧的自定义帖子类型slug的.htaccess文件重定向到帖子

时间:2018-04-05 14:56:03

标签: wordpress .htaccess url-redirection custom-post-type

我有一个带有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 ???

3 个答案:

答案 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]

希望这会有用......