将WordPress上包含-的所有搜索链接重定向为+

时间:2018-09-22 作者:Godwin Alex Ogbonda

我删除了我所有的wordpresstags 通过phpmyadmin, 我的大部分帖子内容都包含tag links, 现在我重定向了所有tag linkssearch 使用。htaccess,

一、 E类

example.com/tag/stack-exchange/ 将重定向到example.com/search/stack-exchange/

它在一些链接上运行得很好,但我注意到,由于- 如果我替换- 具有+ 它会找到我的帖子内容(标题),但如果是- 在链接url上登录,搜索时它不会拉出我的帖子内容。

请我有任何方法可以重定向所有包含- 在链接url上+

一、 e重定向example.com/search/stack-exchange/example.com/search/stack+exchange/

.htaccess 最好是。

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

您可以在.htaccess 要替换全部的文件- 具有+ 发生在/search/ 请求的URL中的路径段:

RewriteRule ^(search/[^-]*)-([^-]*-.*) /$1+$2 [N]
RewriteRule ^(search/[^-]*)-([^-]*)$ /$1+$2 [R=302,L]
第一个RewriteRule 循环(内部),直到除1个连字符外的所有字符都替换为+. 第二个RewriteRule 触发外部重定向,替换最后一个连字符。在您的示例中,如果只有1个连字符,则重定向将立即发生。

将302(临时)重定向更改为301(永久)-如果这是目的-只有在测试其正常工作后。

UPDATE: 如果存在多个连字符时重写循环(因此没有重定向)有问题(-) 在请求的URL中,在循环的每次迭代中,您可能会遇到将PATH\\u信息附加到目标URL的问题。这可以通过DPI 第一个上的(放弃路径信息)标志RewriteRule 指令。例如:

RewriteRule ^(search/[^-]*)-([^-]*-.*) $1+$2 [N,DPI]
RewriteRule ^(search/[^-]*)-([^-]*)$ /$1+$2 [R=302,L]
第一个上的斜杠前缀RewriteRule 则不需要替换。

结束

相关推荐

WordPress没有生成.htaccess,但告诉我(更新了固定链接结构)。

我希望有人能帮助我。我正在使用directadmin配置新的Centos 7服务器,遇到以下问题:;我的。保存permalinks后不会生成htaccess文件,但会显示(Permalink结构已更新)</尝试保存站点后,多站点wordpress给出错误500(日志中没有错误)。我认为这与同样的问题有关,为什么我的htaccess不会生成。htaccess似乎是我问题的一个更容易的起点</你需要知道的事情;在Wordpress中,其他一切似乎都起作用了。我甚至可以在wordpress中下载、安