Я настраиваю виртуальный хост, для которого требуется пароль для каталога. Я проверил, и следующая запись работает локально, но не на сервере (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 такой же, как и мой, но без спецификации каталога, с *: 80 и без ServerName.
У меня есть 2 DNS-сервера для сервера, я хочу, чтобы один из них запрашивал пароль.
Это то, что я догадался в своем комментарии: когда вы обращаетесь к серверу со своего ПК, вы делаете это по имени, поэтому вы нажимаете код, который вы вставили. Когда вы обращаетесь к серверу локально (что означает разговор системного администратора "с / на одной машине"), вы нажимаете 000-default.conf
.
Вероятно, вы можете удалить символическую ссылку /etc/apache2/sites-enabled/000-default.conf
, потому что из того, что вы сказали, похоже, вы хотите, чтобы приведенный выше код был виртуальный хост по умолчанию, веб-сайт, который вы получите всегда, независимо от того, как вы обращаетесь к серверу.