.htaccess不接受密码

时间:2013-04-03 07:35:24

标签: php .htaccess

.htaccess代码

AuthType Basic
AuthName "Authentication Required"
AuthUserFile ".htpasswd"
Require valid-user

.htaccess文件和.htpasswd文件存在于同一位置,当我访问其询问用户名和密码但页面重定向到Internal Server Error的网址时。

4 个答案:

答案 0 :(得分:2)

  

AuthUserFile“.htpasswd”

http://httpd.apache.org/docs/2.2/mod/mod_authn_file.html#authuserfile

“AuthUserFile指令设置文本文件的名称,该文件包含用户身份验证的用户和密码列表。文件路径是用户文件的路径。如果它不是绝对的,则将其视为相对于ServerRoot。“

我很确定你的.htpasswd文件直接位于服务器的文件系统根目录下 - 所以从那里给出一个绝对路径。

(如果您不知道服务器根目录的路径是什么,您可以查看PHP的$_SERVER变量或尝试realpath('.htpasswd')

答案 1 :(得分:1)

您需要在AuthUserFile中提供完整路径。例如:

AuthUserFile "/var/www/DOMAIN/docs/admin/.htpasswd"

所以从$ _SERVER(或任何其他方式)找出确切的Doc Root Path。

答案 2 :(得分:0)

您是否尝试过查看Apache日志?

Internal Server Error表示Apache认为您的配置出现了问题,很可能会在服务器的/var/log/apache2/error.log中放入一些日志。

寻找它,你应该对出了什么问题有个很好的了解。

祝你好运。

答案 3 :(得分:0)

i dont like to hard code this path

如果是这种情况,请在$ DOCUMENT_ROOT目录中创建.htpasswd的符号链接,如下所示:

cd "\wamp\bin\apache\Apache2.2.17\"
MKLINK \actual\path\of\.htpasswd .htpasswd

请参阅此处:How do I create a symbolic link in Windows?