网页上的图像在SSL后停止加载



我最近将我的网站(共享主机)从HTTP更改为HTTPS。我能够加载网页,但图像抛出403错误。这是我的测试页面:在https://www.manogat.com/ssltest.html

=====================
<!DOCTYPE html>
<html lang="mr-IN">
<head>
<title>ssl image loading test</title>
</head>
<body>
<div class="header">
<img style="float:left;" src="img/mano_logo.png" alt="" id="logo-image" >
</div>
</body>
</html>
=====================

浏览器对logo.png抛出403错误。使用console.log https://www.manogat.com/img/mano_logo.png

中的url如果我复制并粘贴url在单独的窗口或选项卡,图像加载正常。

切换到ssl/https后有什么问题?请帮助

显然有某种形式的基于Referer头的访问控制。这很容易检查。对于https://...referrer,它给出了403 Forbidden:

$ curl -v -H "Referer: https://www.manogat.com/ssltest.html"  https://www.manogat.com/img/mano_logo.png
...
< HTTP/1.1 403 Forbidden

没有Referer头,而是给出200:

$ curl -v https://www.manogat.com/img/mano_logo.png
...
< HTTP/1.1 200 OK

http://代替https://引用它也工作:

$ curl -v -H "Referer: http://www.manogat.com/ssltest.html"  https://www.manogat.com/img/mano_logo.png
...
< HTTP/1.1 200 OK

注意,检查似乎显式地查找空标头或http://www.manogat.com。如果Referer头被设置为不同的HTTP站点,如http://example.com,则会得到403。

不清楚这个检查是从哪里来的,因为对主机、服务器和配置一无所知。