Apache服务器配置文件或目录禁止访问

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Apache服务器配置⽂件或⽬录禁⽌访问
在PHP⽹站开发中,为了让⽹站⽬录⽂件和程序代码的安全考虑,我们必须对某些⽬录或者⽂件的访问权限进⾏控制,来提⾼⽹站的安全,那么我们怎样来实现这种功能呢?因此很多时候我们需要禁⽌服务器上某个⽬录或⽂件被访问,主要是对Apache的配置⽂件进⾏操作,有两种⽅法。

1.修改http.conf⽂件
(1).打开apache配置⽂件httpd.conf
(2).找到
<Directory />
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
只需要修改Options Indexes为Options None即可,注:根据PHP运⾏环境安装包的不同,Options Indexes也有可能是Options Indexes FollowSymLinks,⼀并改为Options None即可。

(3).保存httpd.conf,并重启Apache即可,此时再访问时,报apache http 403 禁⽌访问错误信息
Forbidden
You don’t have permission to access / on this server.
Indexes 的作⽤就是当该⽬录下没有 index.html 或index.php⽂件时,就显⽰⽬录结构,去掉 Indexes,Apache 就不会显⽰该⽬录的列表了。

Apache单个或多个⽬录禁⽌访问⽅法
这种⽅法通常⽤来禁⽌访问者访问后台管理⽬录或者程序⽬录,⽅法如下
(1).打开apache配置⽂件httpd.conf
(2).创建Directory块,⽐如禁⽌访问某个类库⽬录,可以这样实现
<Directory /var/wwww/inc>
Order Deny,Allow
Deny from all
</Directory>
上述代码实现了禁⽌所有⽤户访问/var/www/inc⽬录的功能。

如要实现禁⽌访问所有⽬录中inc⽬录的功能,只要将
更改为
<Directory /var/www/*/inc>
(3).重启Apache服务器。

即可。

其他说明
(1).只允许或禁⽌某个域名进⾏⽬录访问
<Directory /var/www/inc>
Order Deny,Allow
Deny from
Allow from
</Directory>
(2).只允许或禁⽌某个IP进⾏⽬录访问上述代码实现禁⽌域中主机访问inc⽬录,允许域中主机访问inc⽬录的功能。

<Directory /var/www/inc>
Order Deny,Allow
Deny from 10.1.1.2
Allow from 192.168.1.0/255.255.255.0
</Directory>
注意:Allow from 192.168.1.0/255.255.255.0等同于Allow from 192.168.1或Allow from 192.168.1.0/24上述代码实现禁⽌IP10.1.1.2访问inc ⽬录,允许IP192.168.1⼦⽹中的主机访问nc⽬录的功能。

2.添加.htaccess⽂件
上⾯那种⽅法在我的Mac下好像实现起来有问题,修改了httpd.conf⽂件之后重启Apache,⽆法访问任何本地⽹站链接了,应该还是修改有问题,还没摸索出来。

之后便使⽤了另外⼀个⽅法,其实我感觉这个⽅法更⽅便。

如果只是想禁⽌某⼀个⽬录或某个⽬录下的⽂件,只需要在该⽬录下新建⼀个.htaccess⽂件,然后输⼊⼀些配置信息即可。

先说明⼀下什么是.htaccess⽂件,.htaccess是⼀个纯⽂本⽂件,它⾥⾯存放着Apache服务器配置相关的指令。

.htaccess主要的作⽤有:URL重写、⾃定义错误页⾯、MIME类型配置以及访问权限控制等。

主要体现在伪静态的应⽤、图⽚防盗链、⾃定义404错误页⾯、阻⽌/允许特定IP/IP段、⽬录浏览与主页、禁⽌访问指定⽂件类型、⽂件密码保护等。

.htaccess的⽤途范围主要针对当前⽬录。

这⾥我们就关注使⽤.htaccess⽂件来限制访问某个⽬录或该⽬录下的⽂件。

(1).在进⾏.htaccess⽂件配置之前,需要先确定httpd.conf⽂件是否配置了允许.htaccess⽂件的作⽤。

因为要使 apache 能够正常的读
取.htaccess ⽂件的内容,就必须对.htaccess 所在⽬录进⾏配置。

从安全性考虑,根⽬录的AllowOverride属性⼀般都配置成不允许任何Override,即:
< Directory />
AllowOverride None
< /Directory>
在我本机Mac电脑上,由于使⽤1中的⽅法新增<Directory></Directory>导致错误,不知什么原因,应该是我还没搞明⽩。

因此我就修改了其原有的⼀个<Directory></Directory>,如下图所⽰,将AllowOverride none 改为了 AllowOverride All,出于安全性考虑最好是想在哪个⽬录下添加.htaccess⽂件就增加⼀个<Directory></Directory>,并配置⽬录路径,添加AllowOverride All。

(这个还需后续摸索成
功)在 AllowOverride 设置为 None 时,.htaccess ⽂件将被完全忽略。

当此指令设置为 All 时,所有具有 “.htaccess” 作⽤域的指令都允许出现在 .htaccess ⽂件中。

还需要注明的是,在购买的阿⾥虚拟主机上,好像不必对httpd.conf进⾏配置,.htaccess⽂件即可⽣效?
(2).对httpd.conf配置完之后,便可以在需要设置访问权限的⽬录下新建⼀个.htaccess⽂件,添加相关的配置代码即可。

⽐如如果想禁⽌所在⽬录以及其⽬录下的所有⽂件访问。

可进⾏如下配置:
order allow,deny
deny from all
如果只是想禁⽌所在⽬录下的特定格式的⽂件可进⾏如下配置:
<Files ~ "\.(pdf|psd|zip|rar)$">
Order allow,deny
Deny from all
</Files>
输⼊Files后的波浪线表⽰启⽤“正则表达式”,简单的写法有:<Files *>,表⽰禁⽌访问该⽬录下所有⽂件。

相关文档
最新文档