.htaccess 在 Cent Os 6.4 上不起作用

.htaccess 在 Cent Os 6.4 上不起作用

我已经安装了 Cent Os 6.4 -Final 版本并设置了 PHP Web 开发的环境。

我的应用程序使用 .htaccess 进行 url 重写并拒绝直接访问文件。

我的 httpd 配置文件 - /etc/httpd/conf/httpd.conf 如下,

<Directory "/var/www/html">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
    Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None

#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>

当我改变AllowOverride 无允许覆盖全部,它要求进行身份验证。所以它对我来说不起作用,并给出如下错误,

This server could not verify that you are authorized to access the document requested.

您提供了错误的凭证(例如,错误的密码),或者您的浏览器不了解如何提供所需的凭证。

我的 .htaccess 看起来像,

deny from all

答案1

如果AllowOverride None在 httpd.conf 中设置了 .htaccess 文件,则该文件会被完全忽略。因此,您必须更改该设置。

当允许 .htaccess 文件时,apache 将从 DocumentRoot 向下检查每个目录是否存在 .htaccess 文件并在那里应用设置,然后再下降到下一个目录并在那里查找 .htaccess 文件。

例如,./www/.htaccess设置为“拒绝所有人”,尝试访问 /scripts/test/hello-world.php 的访问者将被拒绝,尽管 ./www/scripts/test/.htaccess可能已设置为“允许所有人”。

因此,如果不是您的 PHP 脚本要求身份验证,您可能需要检查更高级别目录中的 .htaccess 文件。

相关内容