本文介绍了Mod 重写:将所有 _(下划线)替换为 -(连字符)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要将每个 url 中的所有 _(下划线)替换为 -(连字符)
I need to have all _ (underscores) in every url to be replaced with - (hyphens)
我目前是这样做的,但我正在寻找一种更简单的方法来做到这一点,这样我就不必每次网址变长时都添加一行.
I currently do it this way, but am looking for a more simpler way of doing this so I do not have to add a line every time a url gets longer.
RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)-([^.]+)-([^.]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5_$6_$7_$8_$10 [L] RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)-([^.]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5_$6_$7_$8_$9 [L] RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5_$6_$7_$8 [L] RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5_$6_$7 [L] RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5_$6 [L] RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5 [L] RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4 [L] RewriteRule ^([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3 [L] RewriteRule ^([^_]+)-([^.]+)$ index.php?/$1_$2 [L]谢谢.
推荐答案sedhyphen.sh:
#!/bin/sh sed -u 's/_/-/g'httpd 配置:
RewriteMap sed-hyphen prg:sedhyphen.sh RewriteRule ^(.*)$ index.php?/${sed-hyphen:$1} [L]确保将 sedhyphen.sh 设置为可执行.
Make sure that sedhyphen.sh is set executable.
更多推荐
Mod 重写:将所有
发布评论