您可以在.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 则不需要替换。