我有一个网站,其域名在 GoDaddy 注册,托管在 Apache Digital Ocean droplet 上,GoDaddy 名称服务器指向 DigitalOcean 名称服务器。整个网站都使用 htaccess 登录名/密码。
mydomain.com
我的问题是,在某些浏览器(Safari OS X)中,如果您在没有的情况下访问www
,第一次您会收到此消息而没有提示输入登录凭据:
未授权
此服务器无法验证您是否有权访问所请求的文档。您提供的凭据有误(例如密码错误),或者您的浏览器无法提供所需的凭据。
Apache/2.4.29 (Ubuntu) 服务器位于 www.mydomain.com 端口 80
这第二当您尝试该链接时,它会提示用户登录。
我需要向用户提供登录凭据第一的用户每次访问 时mydomain.com
,而不仅仅是连续尝试。
我在 DigitalOcean 上的 DNS 记录如下:
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 的一个怪癖吗?
答案1
可能是这样的:https://discussions.apple.com/thread/8232508
如果连接仅使用 http(而非 SSL),则最新版 Safari 将不会提示进行基本身份验证。即使它最终使用 SSL,但中间经过重定向到 https 的非 SSL 链接。
这在 iOS 11.2 和 macOS 10.13.2 Safari 中发生了变化。
因此,你必须使用直接指向 https 的链接,而不是重定向到某物http,然后再次转换为 https。
有帮助的方法是将 HSTS 标头发送到 SSL 配置的虚拟主机上。这样,浏览器至少可以在地址栏中输入该域名后直接使用 SSL。