Jie*_*eng 150 apache .htaccess
我正进入(状态
[Tue Apr 24 12:12:55 2012] [错误] [客户端127.0.0.1]客户端被服务器配置拒绝:/ labs/Projects/Nebula/bin /
我的目录结构看起来像(我使用Symfony 2,应该是其他Web框架的类似结构)

我有vhosts设置,如:
<VirtualHost nebula:80>
DocumentRoot "/labs/Projects/Nebula/web/"
ServerName nebula
ErrorLog "/var/log/httpd/nebula-errors.log"
</VirtualHost>
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
Order allow,deny
Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>
Run Code Online (Sandbox Code Playgroud)
我想知道问题是什么,我该如何解决?
小智 395
Apache 2.4.3(或稍早一点)添加了一个新的安全功能,通常会导致此错误.您还会看到"客户端拒绝服务器配置"形式的日志消息.该功能要求授权用户标识访问目录.它由Apache附带的httpd.conf中的DEFAULT打开.您可以使用该指令查看功能的启用
Require all denied
Run Code Online (Sandbox Code Playgroud)
这基本上就是拒绝所有用户访问.要解决此问题,请删除denied指令(或更好)将以下指令添加到要授予其访问权限的目录中:
Require all granted
Run Code Online (Sandbox Code Playgroud)
如在
<Directory "your directory here">
Order allow,deny
Allow from all
# New directive needed in Apache 2.4.3:
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
Jie*_*eng 11
好的我使用了错误的语法,我应该使用
Allow from 127.0.0.1
Allow from ::1
...
Run Code Online (Sandbox Code Playgroud)
小智 5
在 Apache 2.4 中,旧的访问授权语法已被弃用,取而代之的是使用Require的新系统。
你想要的是如下内容:
<Directory "/labs/Projects/Nebula/">
Options All
AllowOverride All
<RequireAny>
Require local
Require ip 192.168.1
</RequireAny>
</Directory>
Run Code Online (Sandbox Code Playgroud)
这将允许源自连接或者从本地主机或从以“192.168.1”开头的IP地址。
如果您不想立即更新配置,还有一个新模块可以让 Apache 2.4 识别旧语法:
sudo a2enmod access_compat
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
194020 次 |
| 最近记录: |