13

当我尝试通过本地主机上的 WAMP 访问我的一个页面时,我一直在尝试修复一个奇怪的 403 Forbidden 错误。

添加规则以通过 apache 使用的 Windows 防火墙打开端口 80 后,我注意到这并不能解决我的问题,而是通过 localhost 为我的所有页面提供了 403 禁止。

删除我刚刚制定的规则(导致这开始)并不能解决它。禁用 Windows 防火墙并不能修复它。重新启动我的计算机并不能修复它。有任何想法吗?

EDIT2:我可以去 localhost/phpmyadmin 寻找任何有价值的东西。

EDIT3:我的 httpd.conf 的内容: http ://www.mediafire.com/?p54a53443efkefs

4

8 回答 8

38

在 httpd.conf 中,找到以下部分并确保它们正确:

DocumentRoot "C:/wamp/www"

<Directory />
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory C:/wamp/www>
    Options None
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

这些是我在安装中使用的设置,它们工作正常。如果进行任何更改,请确保重新启动 Apache。

如果您仍然遇到问题,请使用您的 httpd.conf 更新您的原始问题。


编辑:

这是kludgey,我只是在这里抓住稻草,但尝试向您的虚拟主机添加一个新条目:

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www"
    ServerName localhost
</VirtualHost>
于 2011-06-09T17:16:06.420 回答
11

这可能是一个 ipv6 问题。所以在你的 httpd.conf 添加你的 ipv6 本地地址:

改变:

Allow from 127.0.0.1

到:

Allow from 127.0.0.1
Allow from ::1:
于 2012-03-29T10:03:51.197 回答
6

尝试更改 httpd.conf 中的行

Allow from 127.0.0.1 

或者

 Allow from all

参考文档

于 2011-06-09T16:49:15.413 回答
3

Marco Tamanti 解决方案对我有用:

Allow from 127.0.0.1
Allow from ::1:

所以我有:

<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1:
</Directory>
于 2012-05-08T14:57:36.490 回答
2

您的“全部拒绝”是导致 403 错误的原因。您发布的设置用于阻止所有流量,目的是稍后允许特定流量。如果您从不允许特定流量,您将永远无法正常工作。

对于您的 404 错误,请确保您使用的是正确的路径,并且您的 apache 错误日志中没有错误。

http://httpd.apache.org/docs/current/mod/core.html#directory

于 2011-06-09T16:50:01.600 回答
1

您需要 3 个步骤 请确保这 3 件事

1.

首先,必须允许 TCP 和 UDP 数据包使用端口 80 和 443。为此,请在 Windows 防火墙上为端口 80 和 443 为 TPC 和 UDP 创建 2 个入站规则。(或者,如果允许入站规则,您可以禁用整个防火墙进行测试,但永久解决方案)

2.

如果您使用的是 WAMPServer 3,请参阅答案底部

对于 WAMPServer 版本 <= 2.5

您需要更改 Apache 上的安全设置以允许从其他任何地方进行访问,因此请编辑您的httpd.conf文件。

将此部分更改为:

#   onlineoffline tag - don't remove
     Order Deny,Allow
     Deny from all
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost

到 :

#   onlineoffline tag - don't remove
    Order Allow,Deny
      Allow from all

如果“全部允许”行不适合您,则使用“要求全部授予”,那么它将适合您。

WAMPServer 3 有不同的方法

在 WAMPServer 的版本 3 和 > 中,预定义了一个虚拟主机,localhost因此根本不要修改httpd.conf文件,保持原样。

使用菜单编辑httpd-vhosts.conf文件。

在此处输入图像描述

它应该是这样的:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot D:/wamp/www
    <Directory  "D:/wamp/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

修改为

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot D:/wamp/www
    <Directory  "D:/wamp/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

希望您已经为您的项目创建了一个虚拟主机,而不是wamp\www为您的站点使用该文件夹。在这种情况下,请单独保留 localhost 定义并仅对您的虚拟主机进行更改。

3. 进行此更改后不要忘记重新启动 Wamp 或 Apache 的所有服务

于 2016-12-21T14:05:36.650 回答
0

简单的解决方案。只需以管理员身份运行 Wamp 安装文件,它们就会像魅力一样工作:)

于 2012-09-20T04:36:00.113 回答
0

启动 WAMP 后我发现对我有用的是,左键单击任务栏上显示的 WAMP 图标,然后单击快速管理下的启动所有服务。然后我就可以使用 IE 访问 localhost。我什至回到 httpd.config 文件并将其设置回默认值。

希望这可以帮助。

于 2014-02-28T17:04:19.483 回答