目录
在配置web服务器的过程中,我们经常需要限制用户随意输入的访问链接,比如限制用户访问某个目录,或者限制用户访问目录下的文件,这样可以保证我们的系统的安全。防止恶意用户或者程序爬取我们网站上的资源。下面我们介绍下nginx和apache下怎么设置限制目录或者文件的访问。
Apache可以通过配置文件来禁止访问目录和文件。使用.htaccess文件:在要禁止访问的目录中创建一个名为".htaccess"的文件,并将内容添加到该文件中,还可以修改Apache配置文件httpd.conf
(一)配置文件
限制访问目录
<Directory "d:/web"> ?
? ? Order Deny,Allow ?
? ? Deny from all ?
</Directory>
这个表示限制访问d:/web目录
限制访问文件
<Directory "d:/web">
? Options FollowSymLinks?
? AllowOverride All?
<Files ~ ".jpg|.txt">?
? Order allow,deny?
? ?Deny from all?
</Files>?
</Directory>
这个表示限制访问d:/web目录下文件是后缀是jpg或者txt的文件。
(二).htaccess 配置
修改conf文件如下:
Options FollowSymLinks?
AllowOverride All?
说明:
当FollowSymLinks选项被设置为开启(即,Options +FollowSymLinks),Apache服务器将跟踪符号链接并处理目标文件或目录。这意味着如果请求指向一个符号链接,Apache将访问该链接指向的实际文件或目录。
在Apache中,AllowOverride指令用于控制是否允许使用.htaccess文件覆盖服务器配置文件中的指令。AllowOverride All表示允许使用.htaccess文件完全覆盖服务器配置文件中的指令。
当AllowOverride设置为All时,Apache服务器将允许.htaccess文件中的指令覆盖服务器配置文件中的相应指令。这意味着在.htaccess文件中定义的任何指令都将覆盖服务器配置文件中相同指令的设置。
开启模块:
LoadModule rewrite_module modules/mod_rewrite.so?
htaccess 文件配置如下:
Options -Indexes
这个表示限制访问网站目录
<Files "dir1, dir2"> ?
? ? Order deny,allow ?
? ? Deny from all ?
</Files>
这个表示限制访问文件
要在Nginx中禁止访问目录和文件,可以使用location块和deny指令。以下是一些示例配置,用于禁止访问目录和文件:
(一)配置文件
限制访问某些后拽
location ~ \.(ini|conf|txt)$ {
? ? ? ?deny all;
}
限制访问目录
location ^~ /test/ {
? ? deny all;
}
限制访问目录下文件
location ^~ /test {
? ? deny all;
}