我可以设置“HTML”吗?我的 Apache Web 服务器提供的 PDF 文件的标题
我的 HTML 页面包含 ;带有指向 PDF 文件的 href 的标签。我的 Apache Web 服务器可以很好地为它们提供服务,但标题(如浏览器历史记录中所示)是文件名。我希望能够设置该标题。
也许有一个可以设置的标题?
我不想编写一个脚本来提供文件,因为服务器可以处理内容编码协商(例如,对于 gzip),并进行流量控制,我不想重新创建这些。
I have HTML pages that contain <a> tags with hrefs that point to PDF files. My Apache Web server serves them just fine, but the title, as shown in the Browser history, is of the file name. I would like to be able to set that title.
Perhaps there's a Header than can be set?
I don't want to write a script to serve the files as the server can handle Content-Encoding negotiation (e.g., for gzip), and do flow control, none of such do I want to re-create.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是您可以设置的 http 标头。
Here is an http header you can set.
我创建了一个 PHP-Skript(例如 download.php,文件名无关紧要),如下所示:
在我的设置(Windows 10;Apache 2.4.37;PHP 7.1.25)中,您现在可以执行如下请求:
http://.../download.php/browser_title?filename=test.pdf
我在 Chrome 和 Firefox 中成功测试了这一点。
Internet Explorer 无法显示内联 PDF 文档:-/。
Microsoft Edge 还在标题栏中包含了 URL 参数:-(。
I created a PHP-Skript (e.g. download.php, filename doesn't matter) like this:
In my setup (Windows 10; Apache 2.4.37; PHP 7.1.25) you can now do a request like this:
http://..../download.php/browser_title?filename=test.pdf
I tested this successfully in Chrome and Firefox.
Internet Explorer was not able to display a PDF-Document inline :-/.
Microsoft Edge also included the URL-Parameter in the title bar :-(.
我怀疑您遇到的问题是客户端浏览器将文件名存储在历史记录中,这是您无法修复的。
最后我检查了一下,历史记录中的标题来自 HTML 页面的设置(而不是标头),因此标题应该没有 HTTP 标头字段。
我不是 HTTP 专家,也不了解所有字段,但我不记得我曾经使用过的任何服务器中有一个设置来设置页面的标题(只是状态代码、协议等)
I suspect the issue you are having is that the client browser is storing the file name in the history, which you cannot fix.
Last I checked, the title in the history came from the setting of the HTML page (not a header), so there should be no HTTP header field for the title.
I am no HTTP expert and do not know all the fields, but I do not remember there being a setting in any server that I have ever worked with to set the page's title (just the status code, protocol, etc.)