使用服务器IP地址时,我无法阻止apache创建目录列表。我已尝试编辑相关的站点可用文件,如下所示;
<VirtualHost *:80>
JkMount /* default
ServerName example.co.uk
ServerAlias www.example.co.uk
ServerAdmin me@example.co.uk
DocumentRoot /var/www/example.co.uk/public_html
ErrorLog /var/www/example.co.uk/logs/error.log
CustomLog /var/www/example.co.uk/logs/access.log combined
<Directory /var/www/example.co.uk/public_html>
Options -Indexes
</Directory>
</VirtualHost>
...但如果我使用此格式的网址访问服务器,则会列出public_html文件夹内容;
http://192.168.1.99/example.co.uk/public_html
我还尝试修改/etc/apache2/apache.conf中的apache配置文件以包含以下内容;
<Directory />
Options -Indexes
</Directory>
..但没有快乐。
我正在使用Tomcat,我需要我的WEB-INF文件夹拒绝访问。它没有,因此可以下载任何.class文件。
有谁知道如何解决这个问题?
谢谢
答案 0 :(得分:1)
这听起来有点奇怪。您是否在Apache Tomcat服务器前有Apache HTTPD?
在这种情况下,Apache HTTPD不得指向Apache Tomcat文件所在的目录!两者之间的通信可以更多地被视为代理而不是插件。
我们在使用mod_proxy_ajp时有一些很好的经验。但是如果你能够下载.class文件和(恐慌模式)web.xml(恐慌模式关闭),那就非常错误了。
答案 1 :(得分:0)
如果在末尾添加/ *会怎样?
<Directory /var/www/example.co.uk/public_html/*>
Options -Indexes
</Directory>
更新: 或者尝试在VirtualHost指令之外添加条目。
答案 2 :(得分:0)
这意味着它不会达到您的VirtualHost设置,而是默认的虚拟主机设置。
您有2个选项(至少):
1,将.htaccess文件放入您要限制列出的目录
2,使用与基于名称的虚拟主机类似的设置设置基于IP的虚拟主机
你说你放了
<Directory />
Options -Indexes
</Directory>
您应该位置而不是目录那里