htaccess不起作用 - 总是密码错误

tes*_*ing 27 .htaccess login password-protection .htpasswd

我正在尝试密码保护目录,并在目录中有两个文件应该密码保护它:

  • 的.htaccess
  • htpasswd的

.htaccess中:

###Contents of .htaccess:
AuthUserFile /var/www/html/path/to/my/directory/.htpasswd
AuthName "Protected Files"
AuthType Basic
Require user admin
Run Code Online (Sandbox Code Playgroud)

HTPASSWD:

###Contents of .htpasswd
admin:oxRHPuqwKiANY
Run Code Online (Sandbox Code Playgroud)

密码也是管理员,但无论我尝试什么密码,总是错误的.它立即再次要求输入密码!

这个配置有什么问题?

小智 28

这个问题几乎总是因为apache无法读取.htpasswd文件.有四个原因可以想到:

  1. 它没有正确解析路径...你是如何创建.htaccess文件的?它是否具有unix行结尾(而不是在Windows中使用记事本?

  2. 路径是否正确?以下命令(带路径更新)显示了什么?ls -l /var/www/html/path/to/my/directory/.htpasswd

  3. Web服务器是否可以访问该文件?chmod 644,看看是否能解决问题.

  4. 它无法解析.htpasswd文件:在这种情况下,您正在使用crypt()加密,因此您似乎在Linux上创建了该文件,它可能很好.某些类型的加密仅适用于某些平台,如果有疑问,请尝试切换到MD5.

您可以在Apache错误日志中找到有用的消息.

我的钱在#3上.


sid*_*rcy 21

我有一个类似的问题使用MAMP,这是因为我手动创建.htpasswd.解决方案是htpasswd在终端中使用命令:

htpasswd -bc .htpasswd someuser somepass
Run Code Online (Sandbox Code Playgroud)

这创建了.htpasswd文件,它与我的.htaccess文件工作正常,看起来像这样:

AuthType Basic
AuthName "This site is in alpha and requires a password."
AuthUserFile "/Applications/MAMP/htdocs/mywebsite/.htpasswd"
require valid-user
Run Code Online (Sandbox Code Playgroud)

  • 复制粘贴的人:确保包含`ErrorDocument 401"Authorization Required",以防止它在没有正确密码的情况下进入无限循环.有关示例,请参阅我的[被拒绝的编辑](http://stackoverflow.com/review/suggested-edits/12540997) (2认同)

Bra*_*rks 6

您从父文件夹中看到密码保护的可能性很小,而不是您期望的文件夹.

如果您的/ etc/apache2/sites-enabled文件夹中只有一个文件,请检查它是否有您的sites文件夹的部分,例如:

<Directory /var/www/mysite.com>
   AllowOverride All
</Directory> 
Run Code Online (Sandbox Code Playgroud)

否则,如果它有一个您的站点名称的文件,例如:

/etc/apache/sites-enabled/YOUR_SITE_NAME_HERE.conf

编辑该文件,并确保有一个

AllowOverride All
Run Code Online (Sandbox Code Playgroud)

在那里.那是重要的部分!如果您只想允许最小值,请指定:

AllowOverride AuthConfig
Run Code Online (Sandbox Code Playgroud)

代替.