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

从Apache迁移至Nginx:全局禁止所有Server块访问.htaccess失败求助

全局禁止访问Nginx下的.ht开头文件

你之前的方法无效,是因为默认Server块仅会处理未匹配到任何指定server_name的请求,而你已配置的虚拟主机(带明确server_name的Server块)会优先处理对应域名的请求,不会继承默认Server块的规则。

要让禁止规则全局生效,最可靠的方式是使用Nginx的include指令批量引入规则:

步骤1:创建全局规则片段

在Nginx配置目录下新建一个配置片段文件,比如/etc/nginx/snippets/deny_ht_files.conf,写入以下内容:

location ~ /\.ht {
    deny all;
}

步骤2:在所有Server块中引入该片段

打开每个虚拟主机的Server配置文件(通常在/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下),在每个server {...}块内部添加一行:

include /etc/nginx/snippets/deny_ht_files.conf;

注意:Nginx的location指令必须嵌套在server块内,无法直接在http块下全局声明,因此必须确保每个server块都引入该片段。

验证配置并生效

  1. 检查配置语法是否正确:
nginx -t
  1. 重载Nginx使配置生效:
systemctl reload nginx

此时再访问任意虚拟主机下的.htaccess或其他.ht开头的文件,都会返回403 Forbidden,规则全局生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:20:27