最常用、最安全、直接复制就能用的 Nginx + Apache 网站目录禁止访问代码,不管你用哪种服务器,直接贴配置就能生效。

一、Nginx 环境(最常用)
禁止访问某个目录(推荐)
nginx
# 禁止访问 /includes 目录
location ~ ^/includes/ {
deny all;
}
# 禁止访问 /config 目录
location ~ ^/config/ {
deny all;
}
2. 禁止访问所有。开头的隐藏目录 / 文件(.git、.env 等)
nginx
location ~ /\. {
deny all;
access_log off;
}
3. 禁止访问指定后缀文件(.sql、.log、.ini、.bak 等)
nginx
location ~* \.(sql|log|ini|bak|config|py|php~)$ {
deny all;
}
4. 只允许本地访问(后台目录专用)
nginx
location /admin/ {
allow 127.0.0.1;
deny all;
}
二、Apache 环境(.htaccess)
1. 禁止访问整个目录
创建 .htaccess 放到要禁止的目录里:
apache
Order Allow,Deny
Deny from all
2. 禁止访问指定文件类型
apache
<FilesMatch "\.(sql|log|ini|bak|config)$">
Order Allow,Deny
Deny from all
</FilesMatch>
3. 禁止访问 .git、.env 等隐藏文件
apache
<FilesMatch "^\.">
Order Allow,Deny
Deny from all
</FilesMatch>
三、通用安全规则(所有网站必加)
不管 Nginx 还是 Apache,必须禁止访问这些文件:
.env
.git
vendor/
config/
*.sql
*.log
*.bak
*.ini
总结
Nginx 用 location + deny all
Apache 用 .htaccess + Deny from all
隐藏目录 / 敏感文件必须禁止访问,否则会泄露源码、数据库、密钥