如何在htaccess变量中存储URL参数

时间:2017-01-25 23:01:55

标签: .htaccess

我的所有网址都可以附加?lang=xx,但我不想重写所有htaccess规则,所以我想抓住这个参数并在可用时附加。

我已尝试将参数保存到变量MYLANG,如下所示,但不起作用:

SetEnv MYLANG %{QUERY_STRING} ^lang=([a-zA-Z]{2})$

这是另一项无效的尝试:

RewriteCond %{QUERY_STRING} ^lang=([a-zA-Z]{2})$
SetEnv MYLANG %1

另一次尝试:

RewriteCond %{QUERY_STRING} ^lang=([a-zA-Z]{2})$
RewriteRule ^ - [env=MYLANG:%1]

然后我可以在规则中使用捕获的变量:

RewriteRule ^(.*).html$ /?name=$1&lang=%{ENV:MYLANG} [NC,L]

或者

RewriteRule ^(.*).html$ /?name=$1 [NC,L,E=MYLANG]

2 个答案:

答案 0 :(得分:1)

好主意。你的第三次尝试:

RewriteCond %{QUERY_STRING} ^lang=([a-zA-Z]{2})$
RewriteRule ^ - [env=MYLANG:%1]

应该可以正常工作。

答案 1 :(得分:1)

我从未使用它,但在我看来就是这样:

{{1}}