【发布时间】:2015-06-12 18:22:50
【问题描述】:
我继承了一个包含大约 100 个音频文件的网站。文件的链接是这样的相对链接:
<a href="stories/audio/story1_part1.mp3">part 1</a>
过去那些通常会强制下载。较新的浏览器现在在浏览器中播放音频。除了……
如果用户通过 https 访问该网站,他们可以浏览该网站并加载 html 页面,但音频文件的链接会生成 403 Forbidden错误。在 http 位置更改协议允许 mp3 在浏览器中加载和播放。
为什么 mp3 文件会被禁止通过 https?
有没有一种方法可以强制使用 http 协议,而不必使所有链接都成为绝对链接?我注意到相对链接“继承”了它们加载的页面的协议。这些页面上没有任何需要 https 的东西,所以我不介意强制所有父页面通过 http 加载....
这是一所大型大学内的部门网站。所以我无权访问服务器、htaccess 或任何此类技巧。请全部在浏览器、javascript、html 解决方案中。
更新 我安装了 Firebug 来查看标题,发现音频在 FireFox 中播放良好(在我的 Mac 上)。在 Safari 中,它们加载并播放,但控件不显示进度或时间,但它们确实播放。而在 Chrome 中,它们根本不玩。
我还在工作时在我的 PC 上检查过它们,但它们不能在 IE9(我知道!企业 IT,对吗?)或 Chrome 中运行。
这是我在 Firefox 中获得的音频播放良好的标题。
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 15:39:04 GMT
Server: Apache
WWW: www3
Vary: X-Forwarded-Proto
Last-Modified: Tue, 16 Nov 2010 14:19:25 GMT
Etag: "78e935-d60ac-4952c3e68d540"
Accept-Ranges: bytes
Content-Length: 876716
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: audio/mpeg
GET /dept/area/language/stories/sounds/file.mp3 HTTP/1.1
Host: example.edu
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://example.edu/dept/area/language/stories.html
Cookie: _ga=GA1.2.829124232.1405280613; BIGipServerWWW-HTTP=1378527424.20480.0000; _gat=1
Connection: keep-alive
这些是我在 Chrome 中得到的。
Remote Address:128.122.119.202:443
Request URL:https://example.edu/dept/area/language/stories/sounds/file.mp3
Request Method:GET
Status Code:206 Partial Content
HTTP/1.1 206 Partial Content
Date: Sat, 11 Apr 2015 15:46:12 GMT
Server: Apache
WWW: www4
Vary: X-Forwarded-Proto
Last-Modified: Tue, 16 Nov 2010 14:19:12 GMT
ETag: "78e939-158dbc-4952c3da27800"
Accept-Ranges: bytes
Content-Length: 1
Content-Range: bytes 382271-382271/1412540
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: audio/mpeg
GET /dept/area/language/stories/sounds/file.mp3 HTTP/1.1
Host: www.nyu.edu
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36
DNT: 1
Referer: https://example.edu/dept/area/language/stories.html
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,es;q=0.6,hi;q=0.4,pt;q=0.2
Cookie: _ap_utmz=57748789.1416681263.3.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); _ap_utma=57748789.722895429.1387124094.1423327171.1425612794.7; __utma=57748789.194555315.1387124094.1423327171.1425612794.7; __utmz=57748789.1416681262.3.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); BIGipServerWWW-HTTP=1395304640.20480.0000; _gat=1; _ga=GA1.2.194555315.1387124094
Range: bytes=382271-382271
If-Range: "78e939-158dbc-4952c3da27800"
【问题讨论】:
-
它变得陌生了。我在本地主机上设置了一个自签名证书,当我使用 https 在本地访问它时,它可以在 chrome、firefox 和 safari 中使用。我认为大学的证书设置有问题?