.htaccess 无效

.htaccess 无效

我在这个(本该是)简单的任务上浪费了好几个小时。我想限制对我网站的访问,该网站位于我的服务器上的 /var/www/ 中。

我已使用 httpasswd 成功创建了 /etc/apache2/passwords 文件(用户 primoz)。我已将 .htaccess 放入 /var/www/,内容如下:

AuthType Basic
AuthName "RestrictedFiles"
AuthBasicProvider file
AuthUserFile /etc/apache2/passwords
Require user primoz

我的网站仍然可以访问。我还尝试编辑 /etc/apache2/sites-enabled/000-default - 行AllowOverride 无允许覆盖全部。不用说,它没有做出任何改变。

限制真得这么令人沮丧吗?

编辑: /etc/apache2/httpd.conf默认情况下是空的,因为我在 Debian 上运行服务器 - 它使用 apache2.conf。

这里是整个 apache2.conf。

答案1

我能够解决这个问题。/etc/apache2/sites-enabled/000-默认AllowOverride 无代替允许覆盖全部

我确信我更改了它,但我想当它不起作用时我恢复了文件(不记得为什么 - 可能是其他配置错误)。无论如何,第一段是解决方案。

答案2

通过启用.htaccess httpd.conf,然后将此代码放在您的目录.htaccessDOCUMENT_ROOT

AuthType Basic
AuthName "RestrictedFiles"
AuthUserFile /etc/apache2/passwords
Require valid-user

还要确保 mod_authn_core 已启用。

答案3

只看一下我的(正在使用中):

AuthUserFile /var/www/www.site.com/htdocs/.htpasswd 
AuthName Password_secure
AuthType Basic
require valid-user

您还应该编辑您的apache2.conf并确保已启用以下功能:

LoadModule rewrite_module modules/mod_rewrite.so

以及选项/允许:

<Directory /your/path>
  Options FollowSymLinks
  AllowOverride All
  Order deny,allow
  Deny from all
  Satisfy all
</Directory>

如果用于虚拟主机,那么该块需要位于<VirtualHost></VirtualHost>标签内。

除此之外,如果不查看完整信息,很难发现导致问题的原因apache2.conf

相关内容