将所有博客帖子从%postname%permalink结构重定向到/ news /%postname%

时间:2017-03-30 13:30:20

标签: php wordpress .htaccess redirect mod-rewrite

我已将固定链接更改为自定义结构/ news /%postname%但是我现在正尝试设置301重定向,因此如果有人输入http://example.com/this-is-my-post的旧网址,他们将自动重定向到{ {3}}

我已经成功设置了自定义帖子类型的重定向,因为我将所有帖子从自定义帖子类型“events”移到了“latest”,使用了这个:

RewriteRule ^ events /(.*) http://example.com/news/this-is-my-post $ 1 [R = 301,L]

但是我不确定我是否可以使用它来重定向主要博客帖子,而不会影响网站页面。

1 个答案:

答案 0 :(得分:0)

要忽略eventslatest的请求,您必须定义适当的conditionrule看起来与您已有的相似

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/events/
RewriteCond %{REQUEST_URI} !^/latest/
RewriteCond %{REQUEST_URI} !^/news/
RewriteRule ^(.*)$ /news/$1 [R,L]

您也可以将三个排除条件合并为一个

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/(events|latest|news)/
RewriteRule ^(.*)$ /news/$1 [R,L]

如果一切正常,您可以将R替换为R=301permanent redirect)。 从不使用R=301进行测试。