重定向slug,替换加号为破折号

时间:2014-08-04 13:51:21

标签: wordpress .htaccess mod-rewrite preg-replace slug

我有一个重写问题。它让我疯狂。我在worpdress中创建了一个新网站。我想将旧网址(在谷歌中)重定向到新网址。除了以下网址(旧网址中有一个加号)

之外,其工作正常

www.domain.com/slugname/this+is+a+slug

必须改写为:

www.domain.com/slugname/this-is-a-slug

如何替换破折号的加号(.htacces?add_rewrite_rule?)

Sombody有示例代码吗?

我在worpdress中试过.htacces一个add_rewrite_rule,但我还不够聪明;)

2 个答案:

答案 0 :(得分:1)

如果您乐意按照每个网址单独执行此操作,那么.htaccess文件中的以下内容(文件拼写正确非常重要)应该有效:

RewriteRule ^oldpage$ http://www.example.org/newpage? [R=301,L]

所以你的例子可能是:

RewriteRule ^slugname/this+is+a+slug$ http://www.example.org/slugname/this-is-a-slug? [R=301,L]

规则的R=301部分使重定向成为永久性,我认为这是期望的效果。删除此选项会使重定向成为302,这称为临时。


如果您要将所有+替换为网址中的-,则可以使用通用声明:

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

答案 1 :(得分:0)

WordPress中有一个名为Redirection的插件,可让您将旧链接重定向到新链接。尝试在.htaccess中执行此操作需要花费很多麻烦。您可以在插件上使用正则表达式。 安装完成后,可以在工具菜单下找到该插件。