我对htaccess重写规则有疑问。
是否可以转换此网址:
www.site.com/en/test
在这样的事情中:
www.site.com/test.php?language=en
我尝试使用此RewriteRule
RewriteRule ^([a-z][a-z])/(.*)$ $1.php?language=$2
但是在一些在线测试工具中,结果URL是:
www.site.com/en.php?language=test
提前谢谢你。 垫
答案 0 :(得分:0)
这种混淆的原因是你已经扭转了比赛。当您使用引用时,匹配中的第一个引用始终为$ 1,第二个引用为$ 2,依此类推。
这就是你所做的,只看括号:
([a-z][a-z]) = first match, places "en" in $1
(.*) = second match, places "test" in $2
所以你只需要在输出中反转它们,如下所示:
RewriteRule ^([a-z][a-z])/(.*)$ $2.php?language=$1