使用连字符替换%20的以下代码无法正常工作。有时候它有效,有时却没有,如果标题中有数字,则数字后面的空格不会被替换。任何帮助? 例如。 他今年30岁 他-IS-30%20年%20old
RewriteEngine On
RewriteCond %{THE_REQUEST} (\s|%20)
RewriteRule ^([^\s%20]+)(?:\s|%20)+([^\s%20]+)((?:\s|%20)+.*)$ $1-$2$3 [N,DPI]
RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1-$2 [L,R=301,DPI]
答案 0 :(得分:2)
而不是那些复杂的替换尝试这两个规则用连字符替换所有空格:
RewriteEngine On
RewriteRule "^(\S*)\s+(\S*)$" /$1-$2 [L,NE,R=302]
RewriteRule "^(\S*)\s+(\S*\s+.*)$" $1-$2 [L]
# remove multiple hyphens
RewriteRule ^(.*)-{2,}(.*)$ /$1-$2 [L,R=302]