【问题标题】:Linking directly to audio files直接链接到音频文件
【发布时间】: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 中使用。我认为大学的证书设置有问题?

标签: http https


【解决方案1】:

HTTP 请求和响应标头

请务必阅读有关标头、mime 类型和内容编码的信息。

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

有机会为已知的二进制格式 MIME 类型打开“文件下载”对话框,或为动态内容建议文件名。特殊字符需要引号。

来源:维基百科

无论如何,您的问题似乎是 http 标头问题,也可能是压缩问题。看看你的标题,看看有什么不同,然后从那里排除故障。了解问题后,才能想出解决办法。

故障排除工具

使用 firebugchrome 开发者工具 进行调查。 Fiddler Proxy 来模拟不同的标头,因为您无权访问您的服务器。

文件权限

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

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

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

这将强制用于链接的 http 协议。由于 http 流量混入您的 ssl 安全流量中,这很可能会导致 SSL 链中断。因此,还有另一种选择来实现您想要的:

元刷新

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

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

【讨论】:

  • 感谢您的提示。我会检查一下。我试图避免将 100 多个链接重新制作为绝对网址。此外,网址更像是 example.edu/school/departement/subdepartment/area/zone/language/program/sounds/stories/file.mp3 - 只是很麻烦才能正确和保持正确。
猜你喜欢
  • 2011-03-27
  • 2018-12-02
  • 2018-07-11
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多