我有一个与生产服务器源代码相同的暂存服务器。我想让公众远离登台服务器,所以我想使用 htaccess 将用户限制在登台服务器之外(并将机器人和陌生人留在外面)。
不知何故,它对我不起作用。
我创建了密码文件
sudo htpasswd -cs /var/.passwd staging
我把 .htaccess 文件放在
/var/www/djangoapp/
.htaccess:
AuthUserFile /var/.passwd
AuthType Basic
AuthName "Just testing"
Require valid-user
我确保:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Apache 重启:
sudo service apache2 restart
Django 应用程序仍然可供所有人使用。我做错了什么?
我在没有 htaccess 的情况下找到了上述目标的替代解决方案。我想分享:
在相应虚拟主机部分的 000-default-conf 中:
<Directory /var/www/djangoapp/djangoapp>
AuthUserFile /var/.htpasswd
AuthName "Just testing"
AuthType Basic
Require valid-user
<Files wsgi.py>
Require valid-user
</Files>
WSGIApplicationGroup %{GLOBAL}
</Directory>
当然,仅当您有权访问服务器上的此配置文件时,此解决方案才有效。无论如何,它解决了我的问题。我无法弄清楚为什么我问题中的原始设置对我不起作用。