当DocumentRoot指向两个不同的驱动器时,Apache为我提供了403 Access Forbidden

时间:2008-09-18 01:12:08

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

我试图在虚拟主机下打开一个页面时禁止访问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。我尝试设置了许多不同的访问权限,甚至是对所有人的完全权限,但我没有尝试过任何帮助。

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

5 个答案:

答案 0 :(得分:58)

你不需要

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 :(得分:50)

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

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

More info

答案 2 :(得分:24)

对于 Apache 2.4.2 :当我尝试通过WiFi上的iPhone访问Windows 7桌面上的WAMP时,我连续 403:禁止。在一个blog上,我找到了解决方案 - 在&lt; Directory&gt; 部分中的允许所有之后添加需要全部授予。这就是我的&lt; Directory&gt; 部分在&lt; VirtualHost&gt;

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

答案 3 :(得分:0)

我已经通过删除

中的代码修复了它

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

<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>

它有点像魅力

答案 4 :(得分:0)

已解决403:访问本地主机时被禁止。使用端口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

的项目