首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DocumentRoot目录Apache

DocumentRoot目录Apache
EN

Server Fault用户
提问于 2013-10-21 19:14:27
回答 1查看 2.5K关注 0票数 0

我想对运行在Windows中的Apache的httpd.conf文件进行更改,但我想知道为什么需要使用(或声明)相同的根两次。

代码语言:javascript
复制
DocumentRoot "C:/Apache/htdocs"
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "C:/Apache/htdocs">
    AllowOverride None
    Order allow,deny
    Allow from all
  Options None
</Directory>

如果第一个问题是关于安全性或访问DocumentRoot的,为什么我需要再次声明?

在这种情况下,是否可以传递最后的声明,如:< Directory "C:/Apache/htdocs">?

Apache可以运行省略最后一个< Directory "C:/Apache/htdocs">吗?

我找不到那种感觉。

谢谢。

EN

回答 1

Server Fault用户

发布于 2013-10-21 23:37:06

我来自UNIX/Linux,但我认为您有点误解了配置。让我们将您的配置分解为3部分(好吧,它已经分为3部分了)。

首先,DocumentRoot完全是自己的,对于您的问题/问题,忽略这一点。

其次,“目录/”被配置为拒绝所有用户。这不是针对您的DocumentRoot,而是针对您的文件系统的根(我不知道Apache是如何在Windows上解释这一点的,但是对于Linux和UNIX来说是正确的)。

第三,“目录"C:/Apache/htdocs”配置为允许所有来自DocumentRoot的目录。

这是基本的Apache性能和安全性调优,并且可能是目前为止几乎每个Apache发行版的默认设置。

第一个目录清单中的“AllowOverride无”使Apache无法检查文档根目录上的每个目录以进行重写(.htaccess文件)。

来自Apache文档:When this directive is set to None, then .htaccess files are completely ignored. In this case, the server will not even attempt to read .htaccess files in the filesystem.

因此,如果删除'Directory /‘节:那么Apache将在到达'Directory C:/Apache/htdocs’目录之前查找c:/..htaccess和c:/Apache/..htaccess。因为“AllowOverride无”设置为c:/Apache/htdocs,所以不会再看下去了。您的网站将加载,但您正在不必要地增加Apache必须做的工作来服务它。

现在,如果您删除'Directory "C:/Apache/htdocs"‘节:那么您将继续使用'Directory /’的设置,其中包括‘拒绝所有’。您的网站不会加载。

在我看来,配置是正确的。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/547622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档