如何使用 URL 重写,更改 URL
http://www.mydomain.com/this-is-a-new-article
到
http://www.mydomain.com/this_is_a_new_article
?
使用:
# RewriteRule ^(.+?)-(.+?)$ (.+?)_(.+?) [R=301,L,NE]
?
答案1
sedhyphen.sh:
#!/bin/sh
sed -u 's/-/_/g'
httpd 配置:
RewriteMap sed-hyphen prg:sedhyphen.sh
RewriteRule ^(.*)$ ${sed-hyphen:$1} [L]
确保 sedhyphen.sh 已设置为可执行文件。
取自 -https://stackoverflow.com/questions/2105009/mod-rewrite-replace-all-underscore-with-hyphen(他们正朝相反的方向转变)
你也可以做类似的事情,但它不太动态
重写条件 %{REQUEST_URI} ^(.)-(.)-(.)/$重写规则(.)-(.)-(.)/http://website.com$1_$2_$3/ [R=301]