.htaccess复杂的mod_rewrite规则,URL中的语言

时间:2016-04-14 12:54:32

标签: php apache .htaccess mod-rewrite

我想写一条规则,这会像这样重定向网址:

myweb.com/en/page

myweb.com/page.php?lang=en

和这样的网址

myweb.com/en/page/SOME_TEXT(EVEN WITH SLASHES)

myweb.com/page.php?lang=en&string=SOME_TEXT

此代码:

RewriteRule ^(cz|en)/(.*)$  $2?lang=$1 [QSA,L]

适用于该语言,但不适用于另一个文本(SOME_TEXT)。

我应该改变什么?谢谢大家。

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

RewriteRule ^/(cz|en)/(.*)$  $2.php?lang=$1 [L]
RewriteRule ^/(cz|en)/([^/]+)/(.*)$  $2.php?lang=$1&string=$3 [L]

答案 1 :(得分:0)

您可以使用以下内容:

RewriteRule ^/?(cz|en)/([^/]+)/?(.*)$  $2.php?lang=$1&string=$3 [QSA,L]

?:用于禁用捕获组,因此$ 1现在包含第二个捕获组的值。