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

Apache配置Content-Security-Policy不生效问题求助

问题排查与解决方案

1. 验证配置加载与模块状态

  • 检查Apache配置语法合法性:
    apachectl -t
    
    (Windows环境替换为httpd -t),若存在语法错误会直接提示,修复后重启服务。
  • 确认headers_module已成功加载:
    apachectl -M
    
    输出内容必须包含headers_module (shared),若未出现,需检查LoadModule指令中的模块路径是否与实际文件位置匹配(比如modules/mod_headers.so是否存在于指定目录)。

2. 确认虚拟主机配置生效

  • 在目标<VirtualHost *:80>区块中添加测试响应头:
    Header set X-Debug-Header "Apache-VHost-Working"
    
    重启Apache后,用curl访问站点:
    curl -I http://your-domain.com
    
    若响应头中无X-Debug-Header字段,说明当前请求未匹配到该虚拟主机——需检查域名解析是否正确,或是否有其他带明确ServerName的高优先级虚拟主机覆盖了当前设置。

3. 排查头信息覆盖问题

  • 检查站点根目录及子目录下的.htaccess文件,确认是否存在Header指令覆盖了CSP配置。
  • 查看全局httpd.conf或其他引入的配置文件,确保没有其他位置通过Header set或Header merge设置了Content-Security-Policy头。

4. 检查请求端口与缓存影响

  • 若实际访问的是HTTPS(443端口),需将CSP配置同步添加到<VirtualHost *:443>区块中,*:80仅处理HTTP请求。
  • 使用浏览器隐私模式访问站点,或清除浏览器缓存,避免旧响应缓存导致新配置不生效。

5. 修正配置语法

确保httpd.conf中的CSP配置无HTML转义字符,正确写法如下:

<IfModule mod_headers.c>
    Header set Content-Security-Policy "default-src none;"
</IfModule>

(直接使用普通双引号,不要用&quot;转义字符)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 08:27:26