我有一个带apache的网络服务器,说ip是12.345.678.90
。在我的www目录中,有一些网站,例如site1
和site2
。两者都属于同一个IP地址 - 我创建了虚拟主机。网站位于cakephp框架上,并且有很多目录,例如app
,app/tmp
,lib
,lib/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配置,或通过其他方式处理?
由于
答案 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
这不允许其他人看到您文件夹中的文件