0

我有一个关于 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

先感谢您。垫

4

1 回答 1

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
于 2012-07-10T08:55:46.143 回答