У меня есть сайт, настроенный с доменным именем, зарегистрированным в GoDaddy, и размещенный на капле Apache Digital Ocean, с серверами имен GoDaddy, указывающими на серверы имен DigitalOcean. Весь сайт находится за логином / паролем htaccess.
Моя проблема в том, что в некоторых браузерах (Safari OS X), если вы перейдете в mydomain.com
без www
, когда вы впервые получаете это сообщение без запроса учетных данных:
Неавторизованный
Этот сервер не смог подтвердить, что у вас есть доступ к запрошенному документу. Либо вы ввели неправильные учетные данные (например, неверный пароль), либо ваш браузер не понимает, как предоставить необходимые учетные данные.
Сервер Apache / 2.4.29 (Ubuntu) на порт 80 www.mydomain.com
В второй когда вы пробуете ссылку, она предлагает пользователю войти в систему.
Мне нужен пользователь с авторизованными кредитами первый время, когда пользователь переходит mydomain.com
, а не только при последовательных попытках.
Мои записи DNS в DigitalOcean выглядят так:
Www.mydomain.com направляет на 206.189.65.999 3600
NS mydomain.com направляет на ns3.digitalocean.com. 1800
NS mydomain.com направляет на ns2.digitalocean.com. 1800
NS mydomain.com направляет на ns1.digitalocean.com. 1800
У меня нет большого опыта настройки этого, поэтому я предполагаю, что мои записи DNS неверны, но может ли это быть просто причудой Safari?
Наверное, это: https://discussions.apple.com/thread/8232508
Если соединение установлено только по протоколу http (а не по SSL), то обновленная версия Safari не будет запрашивать базовую аутентификацию. Даже если он попадает в SSL, но проходит не-SSL-ссылку между ними, которая перенаправляется на https.
Это изменилось в iOS 11.2 и macOS 10.13.2 Safari.
Итак, вам нужно будет использовать ссылку, которая ведет непосредственно на https и не перенаправляет на что-то http, а затем снова на https.
Что может помочь, так это отправить заголовок HSTS на виртуальных хостах, настроенных для SSL. Тогда, по крайней мере, браузер будет напрямую использовать SSL в любом следующем экземпляре, просто набрав этот домен в адресной строке.