我有一个私人主页,我想使用 .htaccess 对其进行密码保护。我的 .htaccess 文件如下所示:
AuthName MySite
AuthType Basic
AuthUserFile /what/ever/.htpasswd
require valid-user
#making embeded videos work in wordpress
<Files ~ "\.(mp4|m4v)">
AddType video/mp4 .mp4 .m4v
order allow,deny
allow from all
satisfy any
</Files>
# Code for Wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /whatever/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /whatever/index.php [L]
</IfModule>
#End Wordpress
Options -Indexes
它位于指向主页的文件夹目录中。
问题是,当通过子域访问服务器时,浏览器会不断要求登录/密码。如果在两次尝试后按“取消”,则无论如何都会转到该页面。
如果尝试访问没有子域名的网页,例如:www.mypage.com/privatesite,浏览器会要求输入一次密码,然后就完成了。没有问题。
这是 apache 中的主页 .conf 文件:
<VirtualHost *:80>
ServerName my.site.com
ServerAlias www.my.site.com
ServerAdmin [email protected]
DocumentRoot /var/www/html/site
AccessFileName .htaccess
<Directory "/var/www/html/site">
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
答案1
Apache 对来自不同地方的太多密码请求感到困惑。
仅使用此代码:
<Directory "/var/www/html/folder/">
AuthUserFile /home/user/.htpasswd
AuthName "Pass"
AuthType Basic
require user username
</Directory>
在 000-default.conf 中解决了该问题。
我以为每个 .conf 文件都需要自己的密码说明。但事实并非如此。