XAMPP/Apache 文件夹中的 .htaccess 未找到错误 404

Posted

技术标签:

【中文标题】XAMPP/Apache 文件夹中的 .htaccess 未找到错误 404【英文标题】:Error 404 not found with .htaccess in folder on XAMPP/Apache 【发布时间】:2016-05-17 16:45:40 【问题描述】:

我有一个在 Windows Server 2003 上运行的带有 XAMPP (Apache/php/mysql) 的测试服务器。

我总是毫无问题地使用 .htaccess 和 .htpasswd 文件。在我正在处理的网站上,当我尝试打开受 .htaccess 保护的目录中的任何文件时,我收到 ERROR 404(是!不是 403),如下所示:

<Files .htaccess>
order allow,deny
deny from all
</Files>

AuthName "Area riservata"
AuthUserFile \WEB\TEST\keys\.htpasswd
AuthType Basic
require valid-user

我将.htpasswd 目录更改为与.htaccess (\WEB\TEST\public_html\admin\.htaccess) 文件相同的目录,但没有成功!

如果我删除该文件,一切正常:apache 日志和错误日志什么也没说。

问题/错误在哪里?

编辑

在我的DOCUMENT_ROOT (\WEB\TEST\public_html\) 我有这个.htaccess 文件。 我发现在评论最后一行时(如下 - 对于非文件和符号链接,没有重定向到 index.php)我的问题消失了。我不明白为什么!

 RewriteEngine On
 RewriteCond %REQUEST_URI ^/(it|de|fr|en)/(.*)$ [NC]
 RewriteCond %DOCUMENT_ROOT/multi_html/%2 -s
 RewriteRule ^(it|de|fr|en)/(.*)$ /multi_html/$2?lingua=$1 [NC,L,QSA]

 RewriteCond %REQUEST_FILENAME !-l
 RewriteCond %REQUEST_FILENAME !-s
#RewriteRule . index.php [NC,L]

【问题讨论】:

【参考方案1】:

我找到了自己的答案:

AuthName "Authorisation Required"
AuthUserFile "\WEB\TEST\keys\.htpasswd"
AuthType Basic
require valid-user
ErrorDocument 401 "Authorisation Required"   <-- ADD THIS LINE

Apache 对此进行了一些更改,并且指定 401 错误文档是必要的,因为 Apache 在使用 .htpasswd 时正在寻找它。

【讨论】:

以上是关于XAMPP/Apache 文件夹中的 .htaccess 未找到错误 404的主要内容,如果未能解决你的问题,请参考以下文章

使用 htdocs 下的子目录在 XAMPP/apache 2.2 中的 localhost 上打开 HTML 文件 [重复]

XAMPP修改Apache默认网站目录htdocs的详解

Xampp - Apache 意外关闭、空日志文件且没有事件

XAMPP Apache 无法在 Ubuntu 20.04.3 LTS 上运行

在 htdocs 文件夹之外制作 XAMPP / Apache 服务文件 [关闭]

在 htdocs 文件夹之外制作 XAMPP / Apache 服务文件 [关闭]