我正在设置一个需要目录密码的虚拟主机。我检查了一下,以下条目在本地有效,但在服务器(Ubuntu)上无效。您有什么提示可以说明本地和远程环境之间有什么区别吗?
<VirtualHost example.com:443>
ServerName example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html/public">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/htpasswd/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
服务器在/etc/apache2/sites-available/
文件夹中还有一个名为 000-default.conf 的虚拟主机。此 vhosts 文件与我的相同,但没有 Directory 规范,并且带有 *:80 且没有 ServerName。
我的服务器有 2 个 DNS,我希望其中一个请求密码。
答案1
这是我在评论中猜测的:当你从你的电脑上访问服务器时,你是按名称访问的,所以你输入的是粘贴的代码。当你访问服务器时本地(这是系统管理员所说的‘来自/在同一台机器上’),你正在点击000-default.conf
。
您也许可以删除符号链接/etc/apache2/sites-enabled/000-default.conf
,因为从您所说的内容来看,您似乎希望上述代码成为默认虚拟主机,无论您如何访问服务器,您始终可以访问该网站。