You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.htaccess规则中使用自定义变量存储语言列表?

可以复用语言列表,只需修改一处即可

当然可以!你可以通过设置环境变量的方式,把语言列表只定义一次,后续规则直接复用,避免重复修改多条规则。

修改后的.htaccess配置

# 先捕获语言前缀,设置环境变量LANG,同时剥离前缀(避免循环)
RewriteCond %{REQUEST_URI} !^index\.php$
RewriteRule ^((en|us|uk|fr|de)/)?(.*)$ $3 [E=LANG:$2]

# 处理数字+分号格式的路径
RewriteRule ^([0-9\-.]+);([0-9\-.]+)$ index.php?l=%{ENV:LANG}&t=$1;$2 [QSA,L]

# 处理字母+连字符格式的路径
RewriteRule ^([A-Za-z\-]+)$ index.php?l=%{ENV:LANG}&t=$1 [QSA,L]

关键说明

  1. 语言列表仅维护一次:第一个RewriteRule里的(en|us|uk|fr|de)是唯一需要修改语言列表的地方,新增/删除语言时改这里就行。
  2. 环境变量传递语言值:用E=LANG:$2把捕获到的语言代码(如en、fr)存入环境变量LANG,没有语言前缀时$2为空,完美匹配原规则的可选逻辑。
  3. 剥离前缀避免循环:第一个规则会把带语言前缀的路径(如en/123;456)重写为123;456,后续规则直接处理剥离后的路径,同时通过%{ENV:LANG}获取语言值。

新旧规则对比

  • 原规则:每条RewriteRule都重复写语言列表,新增语言要修改2条规则
  • 修改后:语言列表仅在第一个规则中定义,后续规则复用环境变量,只需修改1处

内容的提问来源于stack exchange,提问作者Martin Perry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:25:18