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

如何在.htaccess的ErrorDocument规则中自动检测HTTP/HTTPS协议?

方案1:使用根相对路径(优先推荐)

如果你的错误页面和当前站点同域名,直接省略协议、域名部分,只用根相对路径即可,Apache会自动适配当前访问的协议与域名,无需额外配置:

ErrorDocument 403 /error/404

该方案最简,不需要引入额外的重写规则,也不存在协议判断的兼容问题。

方案2:自动检测协议拼接绝对URL

如果确实需要使用绝对URL的场景,可以借助mod_rewrite预定义协议变量实现自动判断:

  1. 首先确认Apache已开启mod_rewrite模块
  2. 在.htaccess中添加如下规则,先自动识别当前协议存入环境变量:
RewriteEngine On
# 识别HTTPS协议
RewriteCond %{HTTPS} =on
RewriteRule ^ - [E=PROTO:https]
# 识别HTTP协议
RewriteCond %{HTTPS} !=on
RewriteRule ^ - [E=PROTO:http]

# 若站点部署在反向代理后,可替换为判断转发协议头,规则如下:
# RewriteCond %{HTTP:X-Forwarded-Proto} =https
# RewriteRule ^ - [E=PROTO:https]
# RewriteCond %{HTTP:X-Forwarded-Proto} !=https
# RewriteRule ^ - [E=PROTO:http]
  1. 替换ErrorDocument规则,调用预定义的协议变量即可:
ErrorDocument 403 %{ENV:PROTO}://%{HTTP_HOST}/error/404

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:45:03