当我试图通过浏览器访问localhost时,我得到这个错误。

AH01630: client denied by server configuration

我检查了我的网站文件夹权限使用:

sudo chmod 777 -R *

这是我的配置文件:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/user-name/www/myproject
<Directory />
    Options FollowSymLinks
    AllowOverride all
    Allow from all
</Directory>

<Location />
  Allow from all
  Order Deny,Allow
</Location>

<Directory  /home/user-name/www/myproject/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride all
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride all
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>


当前回答

如果您在windows操作系统的WampServer上使用Apache 2.4。

请在记事本中打开“http -vhosts.conf”文件。

C:\wamp64\bin\apache\apache2.4.37\conf\extra\https-vhosts.conf 

如果您无法找到以上文件。查看下面的截图

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

在上述代码中替换

Require local

with

Require all granted

然后保存。重启Apache服务后重试。

其他回答

为了帮助像我一样在谷歌上搜索的人,我在试图访问服务器上的SVG文件时遇到了这个错误消息,例如https://example.com/images/file.svg。其他文件类型似乎还好,只是SVG失败了。

我在/etc/httpd conf文件中寻找,并检查了每一个要求所有拒绝类型的配置,只是找不到什么配置有这种效果。

我在VirtualHost配置中将LogLevel转换为调试,可以看到mod_authz_core日志指定有一个'Require all denied'的效果:

[Mon Jun 10 13:09:54.321022 2019] [authz_core:debug] [pid 23459:tid 140576341206784] mod_authz_core.c(817): [client 127.0.0.1:54626] AH01626: authorization result of Require all denied: denied
[Mon Jun 10 13:09:54.321038 2019] [authz_core:debug] [pid 23459:tid 140576341206784] mod_authz_core.c(817): [client 127.0.0.1:54626] AH01626: authorization result of <RequireAny>: denied
[Mon Jun 10 13:09:54.321082 2019] [authz_core:error] [pid 23459:tid 140576341206784] [client 127.0.0.1:54626] AH01630: client denied by server configuration: /home/blah/htdocs/images/file.svg

通过盲测,我将文件移动到web根目录的根目录,然后发现我可以在https://example.com/file.svg上访问它。所以它只在images文件夹失败了。这让我在images文件夹中找到了一个我完全不知道的。htaccess文件。

原来禅宗车1.5带有一个图像/。Htaccess文件有:

# deny *everything*
 <FilesMatch ".*">
   <IfModule mod_authz_core.c>
     Require all denied
   </IfModule>
   <IfModule !mod_authz_core.c>
     Order Allow,Deny
     Deny from all
   </IfModule>
 </FilesMatch>

 # but now allow just *certain* necessary files:
 <FilesMatch "(?i).*\.(jpe?g|gif|webp|png|swf)$" >
   <IfModule mod_authz_core.c>
     Require all granted
   </IfModule>
   <IfModule !mod_authz_core.c>
     Order Allow,Deny
     Allow from all
   </IfModule>
 </FilesMatch>

这是非常恼人的,我希望这可以提醒其他人检查文件系统的每一个级别的.htaccess文件,导致你有问题访问的文件,以防有这种tom愚行正在发生。

在花了几个小时后,我自己决定了。

我在vagrant vm中通过cookbook安装Apache/2.4.7 (Ubuntu)。

/etc/apache2/apache2.conf文件默认没有<VirtualHost *:80>元素。

我做了两处改动才完成

added <VirtualHost *:80> 添加 选项索引遵循symlinks AllowOverride所有 允许从所有

最后我启动了vm..

对我来说,我实际上已经根据2.4标准更新了允许和拒绝规则。

Require all granted

然而,这仍然导致我收到相同的AH01630错误。我找到了另一个线程,它建议重新安装apache2。不知何故,这奏效了!如果有人愿意解释一下,我会很有帮助的。

信用:AH01630:客户端被服务器配置拒绝,但要求设置所有授予(Apache 2.4, CentOs)

再次检查DocumentRoot路径是否正确。这可能会导致此错误。

对于Wamp 3 (Apache 2.4),除了像其他答案中描述的那样让服务器在线之外,在虚拟主机文件conf/extra/httpd-vhosts.conf中 你可能需要更换

Require local

with

Require all granted

如果在httpd.conf中有

Include conf/extra/httpd-vhosts.conf