我在配置.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的。
答案 0 :(得分:1)
我认为您需要将完整路径放到htpasswd文件中: 即
AuthUserFile / home / -user - / - site - /.htpasswd
答案 1 :(得分: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>
答案 2 :(得分:0)
来自Apache documentation:
文件路径是组文件的路径。如果它不是绝对的,那就是 作为相对于ServerRoot的处理。
这意味着您要么指定.htpasswd
文件的完整(绝对)路径,要么指定与ServerRoot
相关的路径。例如:
AuthUserFile /www/passwords/.htpasswd