1

请帮忙。对于那些知道和理解的人来说应该很简单。我只需要 .htaccess 重写规则即可在一次重定向操作中将所有下划线替换为破折号。我放

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

但它会一一替换,如果 URL 有五个下划线,它会强制进行 5 次重定向!是否有可能在相同的重写规则(将_替换为-)中搜索字符串并替换它?例子:

host.com/i_want_it_to_be_replaced.html ->
host.com/i-want-it-to-be-replaced.html

并且,如果它看到“i_want”或“i-want”,它会用“force”替换它:

host.com/i_want_it_to_be_replaced.html ->
host.com/force-it-to-be-replaced.html

谢谢!

4

1 回答 1

0

尝试:

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule !_ %{REQUEST_URI} [R=301,L]

RewriteRule (.*)i[_-]want(.*) /$1force$2 [L]
RewriteRule ^(.*)_(.*)$ /$1-$2 [L]
于 2013-11-01T19:03:44.393 回答