阻止Apache从apache根目录提供内容

时间:2014-04-20 22:45:25

标签: apache centos virtualhost

我早些时候注意到了这一点,在快速推出谷歌之后,真的无法找到任何帮助。我甚至在解释问题时真的遇到了麻烦!

当我访问http://mydomain.com/error/README时,我似乎收到了/ var / www / error / README中的错误自述文件。我的mydomain.com虚拟主机是文档根指向/ var / www / html / mydomain,而/ var / www / html / mydomain / error /不存在。

当然我觉得这不应该发生,虽然我还没有能够复制它,但我主要担心的是用户实际上可以访问/ var / www /中的任何内容而不仅仅是/无功/网络/错误/

Linux版本:CentOS 6.5版(最终版)

Apache版本:Apache / 2.2.15

我的虚拟主机文件是:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    DocumentRoot /var/www/html/mydomain
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/html/mydomain/>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    LogLevel error
    CustomLog /var/log/httpd/mydomain_access.log combined
    ErrorLog /var/log/httpd/mydomain_error.log
</VirtualHost>

当然我觉得这不应该发生,虽然我还没有能够复制它,但我主要担心的是用户实际上可以访问/ var / www /中的任何内容而不仅仅是/无功/网络/错误/

1 个答案:

答案 0 :(得分:0)

你的httpd.conf中可能有以下指令:

Alias /error/ "/var/www/error/"

这只是将您的所有错误查询重定向到/ var / www / error(例如,如果您需要www.example.com/error/README,它会将我重定向到该导演中的README之一)。删除别名应该可以解决您的问题。

如果您担心访问其他目录,那么作为Apache的完全新手,我会推荐。

  1. 审核您的httpd.conf并删除您不需要的任何别名。
  2. 修改您的容器,让所有人“拒绝”#34;和&#34; AllowOverride无&#34;在所有这些中。
  3. 如果启用了selinux,则从这些目录中删除httpd安全上下文。
相关问题