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

如何在.htaccess中为以dira为首个子目录的URL设置环境变量

.htaccess中匹配首个子目录设置环境变量的正确规则

需求

当URL的首个子目录为dira时,将环境变量myvar设置为123。

需要生效的URL

test.com/dira
test.com/dira/
test.com/dira/b
test.com/dira/b/
test.com/dira/b/random.html
test.com/dira/b/2
test.com/dira/b/2/
test.com/dira/b/2/and-so-in-into-infinity

需要忽略的URL

test.com
test.com/
test.com/dirb
test.com/dirc/123/456/789/blah
test.com/123/dira/
test.com/dirz/

尝试过的无效规则

RewriteRule ^dira(.*)$ [E=myvar:123]
RewriteRule ^dira/(.*)$ [E=myvar:123]
RewriteRule ^dira/? [E=myvar:123]
RewriteRule ^dira/?$ [E=myvar:123]

正确解法

你之前的规则要么仅匹配dira本身或带斜杠的单一情况,要么没覆盖后续任意层级的路径。正确规则需要同时适配dira开头、带/不带斜杠、以及后续任意内容的场景,还要确保基础配置正确:

  1. 先开启Rewrite引擎(如果未添加):
RewriteEngine On
  1. 添加正确的Rewrite规则:
RewriteRule ^dira(/.*)?$ - [E=myvar:123,L]

规则说明

  • ^dira:匹配URL路径以dira开头
  • (/.*)?:可选分组,匹配斜杠/加任意后续内容,?表示该分组可出现0次或1次,同时覆盖dira本身和dira/xxx这类多级路径
  • -:表示不修改URL路径,仅执行设置环境变量的操作
  • [E=myvar:123]:设置环境变量myvar的值为123
  • L:标记为最后一条规则,避免后续规则覆盖当前设置的环境变量

注意:把这条规则放在其他Rewrite规则之前,防止被提前拦截匹配。

内容的提问来源于stack exchange,提问作者B.T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:01:24