55

尝试在文档根位于与 apache 所在驱动器不同的驱动器上的虚拟主机下打开页面时,我收到 403 访问被禁止。我使用 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。我尝试设置许多不同的访问权限,甚至是每个人的全部权限,但我尝试过的没有任何帮助。

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

4

5 回答 5

63

你不需要

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

于 2012-09-22T15:41:00.733 回答
50

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

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

更多信息

于 2008-09-18T12:00:28.867 回答
27

对于Apache 2.4.2 :当我尝试从我的 iPhone 在 WiFi 上访问我的 Windows 7 桌面上的 WAMP 时,我得到了403: Forbidden 。在一个博客上,我找到了解决方案 -在<Directory>部分的Allow all之后添加Require all grant 。这就是我的<Directory>部分在 <VirtualHost> 中的样子

<Directory "C:/wamp/www">
    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    AllowOverride All
    Order Allow,Deny
    Allow from all
    Require all granted
</Directory>
于 2012-09-20T19:36:56.107 回答
0

我已经通过从以下代码中删除它来修复它

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>

它的作用就像魅力一样

于 2014-12-05T15:32:37.677 回答
0

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

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

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

更改了这 2 行。

<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 访问您的项目

于 2020-01-24T16:16:23.447 回答