【问题标题】:Apache gives me 403 Access Forbidden when DocumentRoot points to two different drives当 DocumentRoot 指向两个不同的驱动器时,Apache 给了我 403 Access Forbidden
【发布时间】:2010-09-10 11:41:50
【问题描述】:

当我试图在一个虚拟主机下打开一个页面时,我得到一个 403 访问被禁止,而该虚拟主机的文档根目录位于与 apache 所在的驱动器不同的驱动器上。我使用 apachefriends 版本安装。这是我的 httpd-vhosts.conf 文件:


NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1> ServerName foo.localhost DocumentRoot "C:/xampp/htdocs/foo/public" </VirtualHost>

<VirtualHost 127.0.0.1> ServerName bar.localhost DocumentRoot "F:/bar/public" </VirtualHost>

在我的浏览器中打开 bar.localhost 时,Apache 给了我 403 Access Forbidden。我尝试设置许多不同的访问权限,甚至为每个人设置完全权限,但我尝试过的没有任何帮助。

编辑:谢谢!为了将来参考,在其中添加“选项索引”以显示目录索引。

【问题讨论】:

    标签: windows apache virtualhost http-status-code-403


    【解决方案1】:

    你不需要

    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    AllowOverride All
    Order Allow,Deny
    Allow from all
    Require all granted
    

    你唯一需要的是......

    Require all granted
    

    ...在目录部分中。

    参见 Apache 2.4 升级端:

    http://httpd.apache.org/docs/2.4/upgrading.html

    【讨论】:

    • +1 这应该是正确的答案。帮我省了很多麻烦。
    • 太棒了。你帮了我很大的忙。
    • 就我而言,我仍然需要Options Indexes FollowSymLinks MultiViews
    • 澄清一下,这是对@cloudwhale 的回答,是吗? link
    • 我在 Windows server 2012 中使用 xampp,写了“要求所有授权”但仍然是同样的问题。
    【解决方案2】:

    在某个地方,您需要告诉 Apache 允许人们查看该目录的内容。

    <Directory "F:/bar/public">
        Order Allow,Deny
        Allow from All
        # Any other directory-specific stuff
    </Directory>
    

    More info

    【讨论】:

    • 对我来说,我必须修改的这个文件是 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf
    • @Moss - 嗯,是的。如果您遇到困难,那么很可能还有另一个问题 - 也许您的配置没有被读取或 NTFS 权限阻止 Apache 读取它。如果事情仍然不适合您,也许发布您自己的问题是明智之举......?
    • 是的,我确实发布了我自己的问题:stackoverflow.com/questions/10859271/…。我在从站点到驱动器的每个文件夹上将权限设置为经过身份验证的用户、系统、管理员的完全控制。还能做什么?
    【解决方案3】:

    对于 Apache 2.4.2:当我尝试通过 WiFi 上的 iPhone 访问 Windows 7 桌面上的 WAMP 时,我不断收到 403: Forbidden。在一个 blog 上,我找到了解决方案 - 在 部分的 Allow all 之后添加 Require all grant。这就是我的 部分在

    中的样子
    <Directory "C:/wamp/www">
        Options Indexes FollowSymLinks MultiViews Includes ExecCGI
        AllowOverride All
        Order Allow,Deny
        Allow from all
        Require all granted
    </Directory>
    

    【讨论】:

    • (y) 太棒了!添加到 vhosts.conf 文件中
    • Apache 2.4 + Windows 10 + XAMPP 给了我同样的错误(403 被禁止)。大多数答案都给出了“要求所有授予”并且不起作用。添加“Options Indexes FollowSymLinks MultiViews Includes ExecCG”工作!谢谢!
    【解决方案4】:

    我已通过从

    中删除以下代码来修复它

    C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf文件

    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
        ServerName dummy-host.example.com
        ServerAlias www.dummy-host.example.com
        ErrorLog "logs/dummy-host.example.com-error.log"
        CustomLog "logs/dummy-host.example.com-access.log" common
     </VirtualHost>
    
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"
        ServerName dummy-host2.example.com
        ErrorLog "logs/dummy-host2.example.com-error.log"
        CustomLog "logs/dummy-host2.example.com-access.log" common
    </VirtualHost>
    

    并添加了

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot "c:/wamp/www"
        ServerName localhost
        ErrorLog "logs/localhost-error.log"
        CustomLog "logs/localhost-access.log" common
    </VirtualHost>
    

    而且效果很好

    【讨论】:

      【解决方案5】:

      已解决 403:访问 localhost 时被禁止。使用端口 80,443,3308(后期处理与 MySQL Server 安装冲突) Windows 10、XAMPP 7.4.1、Apache 2.4.x 我的 Web 文件位于单独的文件夹中。

      httpd.conf - 查找这些行并将其设置在您的文件所在的位置,我的是 web 文件夹。

      DocumentRoot "C:/web"
      <Directory "C:/web">
      

      更改了这两行。

      <VirtualHost *:80>
       ServerAdmin webmaster@localhost.com
       DocumentRoot "C:/web/project1"
       ServerName project1.localhost
       <Directory "C:/web/project1">
        Order allow,deny
        allow from all
       </Directory>
      </VirtualHost>
      

      到这里

      <VirtualHost *:80>
       ServerAdmin webmaster@localhost.com
       DocumentRoot "C:/web/project1"
       ServerName project1.localhost
       <Directory "C:/web/project1">
        Require all granted
       </Directory>
      </VirtualHost>
      

      在您的主机文件中添加您的详细信息 C:\Windows\System32\drivers\etc\hosts 文件

      127.0.0.1 localhost
      127.0.0.1 project1.localhost
      

      停止启动 XAMPP,然后单击 Apache admin(或 localhost),现在会显示精彩的 XAMPP 仪表板!并在 project1.localhost 访问您的项目

      【讨论】:

        猜你喜欢
        • 2018-11-14
        • 2012-07-21
        • 2012-07-25
        • 2014-07-20
        • 2020-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多