Javascript htaccess文件-将url中两个以上单词的下划线更改为连字符

Javascript htaccess文件-将url中两个以上单词的下划线更改为连字符,javascript,php,apache,.htaccess,mod-rewrite,Javascript,Php,Apache,.htaccess,Mod Rewrite,我正在尝试为我的网站将所有下划线改为连字符。目前我已将此代码添加到.htaccess文件中 RewriteBase / RewriteRule !\.(html|php)$ - [S=6] RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5-$6-$7 [E=underscores:Yes] RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(

我正在尝试为我的网站将所有下划线改为连字符。目前我已将此代码添加到.htaccess文件中

RewriteBase /

RewriteRule !\.(html|php)$ - [S=6]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5-$6-$7 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5-$6 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=underscores:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=underscores:Yes]

RewriteCond %{ENV:underscores} ^Yes$
RewriteRule (.*) http://www.askapache.com/$1 [R=301,L]
但是,它只适用于url,如www.abc.com/about_-us到www.abc.com/about-us,而不适用于包含两个以上单词的url,如www.abc.com/about_-us\u-do\u-you\u


有人能帮我解决这个问题吗。多亏了而不是这么多复杂的规则,您可以使用这两个递归规则将所有下划线替换为连字符:

RewriteEngine On

RewriteRule \.(html?|php)$ - [L,NC]

RewriteRule ^([^_]*)_+([^_]*)$ http://www.askapache.com/$1-$2 [L,R=301,NE]

RewriteRule ^([^_]*)_+(.*)$ $1-$2 [N,DPI]

谢谢你的回答。但是,这会带来相同的问题,因为具有较大名称的URL不会更改为连字符,例如。虽然它适用于小url,但现在对于更长的url,它指向。。。。在选项卡上找不到404页。我尝试将url更改为我的url,但它仍然指向。这是由于浏览器缓存。完全清除浏览器缓存并进行测试。