通过IP地址限制对目录的访问

时间:2014-05-07 04:15:44

标签: php apache .htaccess webserver apache2.2

我有一个带apache的网络服务器,说ip是12.345.678.90。在我的www目录中,有一些网站,例如site1site2。两者都属于同一个IP地址 - 我创建了虚拟主机。网站位于cakephp框架上,并且有很多目录,例如appapp/tmpliblib/Cake等。访问网站时{{1} }或http://site1.com一切都很好,这些目录无法查看或访问,但通过ip我可以看到一切。

http://site2.com

等 - 所有这些包含每个站点的文件的目录都是可见的。那么,我如何通过IP地址阻止任何类型的访问?实际上当只打开ip http://12.345.678.90/ http://12.345.678.90/site1/lib http://12.345.678.90/site1/app http://12.345.678.90/site1/app/tmp 时它就没有显示任何内容,因为我创建了空http://12.345.678.90文件,但我不能为所有文件夹执行此操作,(或为每个目录创建htaccess)。这可以通过单个htaccess处理,或者更好,通过apache配置,或通过其他方式处理?

由于

2 个答案:

答案 0 :(得分:1)

试试这个

禁用目录列表

在Apache配置文件(httpd.conf)文件中找到目录部分,例如:/var/www/html

<Directory "/var/www/html">
   Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny 
   Allow from all
</Directory>

删除Indexes或将Indexes更改为-Indexes

然后重新启动Apache服务器service httpd restart

限制访问权限:目录级别

您可以通过添加以下

来限制对某些目录的访问
<Directory "/var/www/html/site1/mydirectory">
   Order allow,deny
   Deny from all
</Directory>

通过将以上配置添加到apache conf文件,mydirectory将被阻止/限制访问。

限制访问:文件级别

如果要限制目录中的某个文件。添加 -

<Directory "/var/www/html/site1/mydirectory">
  Order allow,deny
  Allow from all
    <Files myfile.php>
        Order allow,deny
    </Files>
</Directory>

阻止通过IP地址访问所有文件

 <Files ~ ".+">
  Order allow,deny
  Deny from all
</Files>

答案 1 :(得分:0)

这应该可行(将其添加到主.htaccess文件中)

Options All -Indexes

这不允许其他人看到您文件夹中的文件