目录

nginx中忽略已.开头的文件

nginx中忽略已.开头的文件

这个 Nginx 配置规则表示 禁止访问以点( . )开头的文件或目录 ,并返回 404 错误。具体解释如下:

location ~ / {
    deny all;
    return 404;
}

解释

  • location ~ / { ... }

    • ~ :表示正则表达式匹配。
    • `` :表示匹配文件或目录路径中的 “.” (点),例如 .git.env.htaccess 等隐藏文件或目录。
    • 这意味着该规则会匹配任何路径中包含 以点( . )开头的文件或目录 ,例如 .git/.env.htaccess 等。
  • deny all;

    • deny all; :拒绝所有用户访问匹配的文件或目录。即当访问匹配的路径时,会被拒绝,不能继续访问。
  • return 404;

    • return 404; :对于匹配到的路径,Nginx 会返回 404 Not Found 错误页面,而不是直接拒绝连接。
    • 这表示请求的文件或目录 不存在 (即返回 404 错误),而不是直接显示 403(禁止访问)。

实际效果

假设你的服务器有以下隐藏文件或目录:

  • .git/
  • .env
  • .htaccess

当用户访问任何这些路径时:

  • 例如,访问 http://example.com/.git/http://example.com/.env
  • Nginx 会拒绝访问,并返回 404 错误 ,表示文件或目录不存在。

这种配置常用于 安全防护 ,避免泄露敏感的隐藏文件(如 .git.env.htaccess 等)。


总结

这个 location 配置的作用是:

  • 拒绝访问以点( . )开头的文件或目录 ,例如 .git.env 等。
  • 返回 404 错误 ,而不是 403,来隐藏这些敏感资源。