1

我在配置 .htaccess 文件以保护文件的访问时遇到了一些麻烦。要保护的文件是:www.mydomain.com/admin/stats.php

我使用以下代码将 .htaccess 文件放入 www.mydomain.com/admin 文件夹:

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /
<Files stats.php>
require valid-user
</Files>

.htpasswd 文件也在 www.mydomain.com/admin 文件夹中,它包含用户名和密码。

如果我尝试访问 www.mydomain.com/admin/stats.php,我会收到“内部服务器错误”。我认为错误可能出现在“AuthUserFile”的路径中,但我怎样才能告诉文件要保护的文件位于.htpasswd 的同一文件夹中?

服务器是基于 Linux 的。

4

3 回答 3

1

我认为您需要将完整路径放入 htpasswd 文件:即。

AuthUserFile /home/-user-/-site-/.htpasswd

于 2012-07-01T16:58:40.143 回答
1

你好,你可以试试这个:

这是一个 path.php 文件,它将显示其父文件夹的真实路径

<?php 

     echo realpath('path.php'); 

?>

在你的 .htpasswd 你需要有这样的东西:

username:password

但密码需要加密,你可以用

<?php 

echo crypt('your_password'); 

?>

最后这是 .htaccess 文件

<Files page_to_protect.php>
AuthName "Message" 
AuthUserFile \realpath_to_htpasswd\.htpasswd 
AuthType Basic
require valid-user
</Files>
于 2017-09-24T10:54:32.927 回答
0

从 Apache文档

File-path 是组文件的路径。如果它不是绝对的,则将其视为相对于 ServerRoot。

这意味着您要么指定文件的完整(绝对)路径,要么指定.htpasswd相对于您的文件的路径ServerRoot。例子:

AuthUserFile /www/passwords/.htpasswd
于 2012-07-01T16:59:28.747 回答