【问题标题】:Stop Apache from serving content from apache root directory阻止 Apache 从 apache 根目录提供内容
【发布时间】:2014-04-21 10:01:14
【问题描述】:

我早些时候偶然发现了这一点,在快速谷歌之后,真的找不到任何帮助。我真的很难解释这个问题!

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

我当然觉得这不应该发生,虽然我无法复制它,但我主要担心的是用户实际上可以访问 /var/www/ 之外的任何内容,而不仅仅是 /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/ 之外的任何内容,而不仅仅是 /var/www/错误/

【问题讨论】:

    标签: apache centos virtualhost


    【解决方案1】:

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

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

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

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

    1. 审核您的 httpd.conf 并删除您不需要的任何别名。
    2. 修改您的容器以在所有容器中都包含“拒绝所有”和“允许覆盖无”。
    3. 如果您启用了 selinux,则从这些目录中删除 httpd 安全上下文。

    【讨论】:

    • 谢谢,它成功了。恼人的是,我确实查看了 httpd.conf ......想不出我为什么/如何错过它!不过,我会通过审核 httpd.conf 来听取您的建议。
    猜你喜欢
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 2011-01-31
    • 2013-07-10
    • 2015-06-22
    • 2012-12-14
    • 2011-05-14
    • 2018-06-15
    相关资源
    最近更新 更多