我想设置mod_rewrite来处理多种语言,但我无法让它正常工作。
我希望以下工作:
example.com/en/page/abc - > example.com/page.php?language=en&id1=abc example.com/en/page/abc/def - > example.com/page.php?language=en&id1=abc&id2=def
我的.htaccess文件如下所示:
RewriteEngine On RewriteRule ^(.*)/page/(.*)/(.*) page.php?case=a1&language=$1&id1=$2&id2=$3 RewriteRule ^(.*)/page/(.*) page.php?case=a2&language=$1&id1=$2
现在,如果我输入url'en / page / abc'它可以正常工作,但是如果我输入'en / page / abc / def'它会执行第二个规则并将'page.php'作为语言和'abc' / def'作为id1的变量。撤销订单仍然会将“page.php”作为语言的值。有人建议如何解决这个问题吗?
答案 0 :(得分:0)
用([a-z] +)替换第一个(。*)就可以了。
我的.htaccess现在看起来像这样:
RewriteRule ^([a-z]+)/page/(.*)/(.*) page.php?language=$1&id1=$2&id2=$3 RewriteRule ^([a-z]+)/page/(.*) page.php?language=$1&id1=$2