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

如何编写适配Localhost和Production环境的独立规则Htaccess文件

你可以通过Apache原生的条件判断指令实现单.htaccess适配双环境,以下是两种常用的可行方案:

方案1:基于环境变量标记(更稳定,推荐)

先在本地Apache的全局配置或者站点虚拟主机配置中加入一行定义,标记本地环境:
Define LOCAL_ENV 1
生产环境的Apache不需要添加这行配置。之后直接在.htaccess中用<IfDefine>指令区分规则即可:

# 仅本地环境生效的规则块
<IfDefine LOCAL_ENV>
  # 此处填写你本地需要的所有htaccess规则
  # 示例:本地不强制HTTPS、添加调试响应头
  Header set X-Run-Env "Localhost"
  RewriteEngine On
  RewriteCond %{HTTPS} on
  RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfDefine>

# 仅生产环境生效的规则块
<IfDefine !LOCAL_ENV>
  # 此处填写你生产环境需要的所有htaccess规则
  # 示例:强制HTTPS、开启HSTS
  Header set X-Run-Env "Production"
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
</IfDefine>

方案2:基于访问域名判断(无需改Apache配置)

如果不想修改本地Apache配置,可以直接通过判断当前访问域名区分环境,要求Apache版本≥2.4:

# 本地环境规则,匹配本地常用域名,可自行修改正则添加你本地的测试域名
<If "%{HTTP_HOST} =~ /^(localhost|127\.0\.0\.1|.*\.test|.*\.local)$/">
  # 填写本地专属规则
  Header set X-Run-Env "Localhost"
  # 示例:本地关闭静态资源缓存方便调试
  <FilesMatch "\.(html|css|js|png|jpg)$">
    Header set Cache-Control "no-store, no-cache, must-revalidate"
  </FilesMatch>
</If>

# 生产环境规则
<Else>
  # 填写生产专属规则
  Header set X-Run-Env "Production"
  # 示例:生产开启静态资源长缓存
  <FilesMatch "\.(css|js|png|jpg|webp)$">
    Header set Cache-Control "public, max-age=31536000, immutable"
  </FilesMatch>
</Else>

注意事项

  • 两种方案二选一即可,推荐优先使用方案1,不会因为生产域名变更出现规则误判问题
  • 所有放在对应条件块内的规则只会在匹配对应环境时生效,完全符合你需要的逻辑

内容的提问来源于stack exchange,提问作者Ren Jitsm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:03:02