php – 在htaccess中,我想用连字符替换下划线,然后将用户重定向到新的url

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在htaccess中,我想用连字符替换下划线,然后将用户重定向到新的url脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将包含下划线的任何请求重定向到相同的URL,但用连字符替换url.我见过很多论坛建议我这样做:

(重复这个rewriterule的增量版本,达到数十亿)

rewrITeRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$http://example.COM/$1-$2-$3-$4 [R=301,L]
rewriteRule ^([^_]*)_([^_]*)_(.*)$http://example.com/$1-$2-$3 [R=301,L]
rewriteRule ^([^_]*)_(.*)$http://example.com/$1-$2 [R=301,L]

我目前在PHP中的解决方案是(工作正常):

if(PReg_match('/[_]+/',$_SERVER['REQUEST_URI'])){
    $redirectUrl = preg_replace('/[_]+/','-',$_SERVER['REQUEST_URI']);
    header('Location: '. $redirectUrl,TRUE,301);
    return;
}

但是,我宁愿不使用PHP&而是将它保存在我的htaccess文件中,而不必一遍又一遍地重复第一次重写规则,以便预测每个url可能有多少个下划线.思考?是否有这样的方法来重复增加的rewriteRule?

—–编辑—–

我当前的htaccess文件只是标准的wordpress文件,如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.PHP$- [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.PHP [L]
</IfModule>
请参阅“Next”指令/重写标志,这将导致从第一个规则开始重新评估规则集: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_n

这样的事情可能有用:

RewriteRule (.*)_(.*) $1-$2 [N]

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在htaccess中,我想用连字符替换下划线,然后将用户重定向到新的url全部内容,希望文章能够帮你解决php – 在htaccess中,我想用连字符替换下划线,然后将用户重定向到新的url所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。