我所有的 URL 都可以附加 ?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]
最佳答案
我从未使用过它,但在我看来就是这样:
RewriteCond %{QUERY_STRING} ^lang=([a-zA-Z]{2})$
RewriteRule ^ - [E=MYLANG:%1]
RewriteRule ^(.*).html$ /?name=$1&lang=%{ENV:MYLANG} [NC,L]
关于.htaccess - 如何将 URL 参数存储在 htaccess 变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41863278/