【问题标题】:Redirect slug, replace plus for dashes重定向 slug,将 plus 替换为破折号
【发布时间】:2014-09-27 00:32:59
【问题描述】:

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

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,但我不够聪明;)

【问题讨论】:

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


    【解决方案1】:

    如果您愿意为每个 URL 单独执行此操作,那么您的 .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,这被称为临时。


    如果您希望将 URL 中的所有 + 替换为 -,那么您可以使用通用语句:

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

    【讨论】:

    • 感谢您的快速反应!但是大约有 1000 个链接在 url 中有这个加号,所以一个通用的解决方案会很棒。
    • 没问题,这应该更容易。我已经用第二种解决方案更新了答案。
    【解决方案2】:

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

    【讨论】:

    • 好吧,我安装了它:原始 url 类似于:/blabla/7878/blabla+blalbal 在重定向模块中我使用这个 /blabla/(.*d)/(.*?) +(.*?) 并将其重定向到 /blabla/$2-$3 它不起作用。我的正则表达式是什么?我做错了什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多