外观
服务器配置
约 336 字大约 1 分钟
2025-06-19
Apache 与 Nginx 优雅屏蔽 SVN 与 Git 目录
在部署项目时,为了防止 .svn、.git 等版本控制目录暴露到公网,可以在 Web 服务器层面进行屏蔽。
Apache 配置
在 httpd.conf 或虚拟主机配置文件中添加以下规则(index.php 可根据实际站点页面调整):
<DirectoryMatch "(\.svn|\.git|_svn)">
RewriteEngine On
RewriteRule ^(.*)(\.svn|\.git|_svn)(/.*)$ /index.php [R=301,L]
</DirectoryMatch>如果站点配置文件在
vhosts目录下,同样可以将上述配置放入对应虚拟主机配置中。
Nginx 配置
在 nginx.conf 或站点配置文件中添加:
location ~ ^(.*)/(\.svn|\.git|_svn)/ {
rewrite ^(.*) /index.php break;
}Nginx 静态资源 Server 配置
以下配置用于独立承载静态资源(图片、JS、CSS 等),关闭访问日志并设置缓存过期时间,减轻主站压力。
server {
listen 80;
server_name img.ename.cn;
root /var/www/ename/common_img/;
index index.html;
# 静态资源开启缓存
location ~* \.(gif|jpg|jpeg|png|bmp|swf|js|css|ico)$ {
access_log off;
expires 30d;
}
# 主日志
access_log /usr/local/nginx/logs/common_img_access.log;
error_log /usr/local/nginx/logs/common_img_error.log;
}提示
access_log off关闭静态资源的访问日志记录,减少 I/O 开销。expires 30d设置浏览器缓存时间为 30 天,可根据实际需求调整。location ~*中的*表示不区分大小写匹配。
