直接链接到音频文件

时间:2015-04-08 00:18:29

标签: http https

我继承了一个包含大约100个音频文件的网站。这些文件的链接是相对链接,如下所示:

<a href="stories/audio/story1_part1.mp3">part 1</a>

那些通常强迫下载的日子。较新的浏览器现在可以在浏览器中播放音频。除了....

如果用户通过 https 访问该网站,他们可以浏览网站并加载html网页,但指向音频文件的链接会生成 403 Forbidden 错误。更改位置 http 中的协议允许mp3在浏览器中加载和播放。

为什么要通过https禁止mp3文件?

有没有办法强制http协议,而不必使所有链接绝对链接?我注意到相对链接“继承”了它们加载的页面的协议。这些页面上没有任何需要https的内容,因此我不介意强制所有父页面加载http ....

这是一所大学内的部门网站。所以我无法访问服务器,htaccess或任何类型的技巧。全部使用浏览器,javascript,html解决方案。

更新 我安装了Firebug来查看标题,发现FireFox中的音频播放效果很好(在我的Mac上)。在Safari中他们加载和播放,但控件不显示进度或时间,但它们确实可以播放。在Chrome中他们根本不玩。

我还在工作时在我的电脑上检查了它们,他们不玩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"

1 个答案:

答案 0 :(得分:-1)

HTTP请求和响应标头

请务必阅读标题,mime类型和内容编码。

您可以尝试使用 Content-Disposition 响应标题

  

有机会提出&#34;文件下载&#34;具有二进制格式的已知MIME类型的对话框或建议动态内容的文件名。特殊字符需要引用。

来源:维基百科

无论如何,你的问题似乎是一个http头问题,也可能是压缩。看看你的标题和最新的不同,并从那里排除故障。当您了解问题时,您可以考虑解决方案。

故障排除工具

使用 firebug Chrome开发人员工具进行调查。 Fiddler代理模拟不同的标头,因为您无权访问您的服务器。

文件权限

可能是SSL作为服务器上的另一个用户或配置运行,并且mp3文件具有错误的权限或其父目录。你需要检查这些,但由于你没有服务器访问权限,你可能会运气不好。

但是,如果SSL对您不重要,只需链接到这样的文件:

<a href="http://yourDomain.tld/folder/anotherFolder/file.mp3">

这将强制使用用于链接的http协议。这很可能导致SSL链因为http流量混入您的ssl安全流量而被破坏。因此,有另一种方法可以实现您的目标:

Meta Refreshes

<meta http-equiv="refresh" content="3; URL=http://www.yourNonSSLDomain.tld/">

这将重定向到您的非SSL网站,您可以确保不在HTML文档中混用https和http资源。