我可以设置“的;HTML";我的Apache Web服务器提供的PDF文件的标题

我可以设置“的;HTML";我的Apache Web服务器提供的PDF文件的标题,apache,http-headers,Apache,Http Headers,我有HTML页面,其中包含指向PDF文件的带有HREF的标记。我的ApacheWeb服务器可以很好地为它们提供服务,但如浏览器历史记录所示,标题是文件名。我希望能够设置该标题 也许有一个可以设置的标题 我不想编写脚本来为文件提供服务,因为服务器可以处理内容编码协商(例如,对于gzip),并进行流控制,我不想重新创建这些内容。我怀疑您遇到的问题是客户端浏览器将文件名存储在历史记录中,您无法修复 上次我检查时,历史记录中的标题来自HTML页面的设置(不是标题),因此标题应该没有HTTP标题字段 我不

我有HTML页面,其中包含指向PDF文件的带有HREF的标记。我的ApacheWeb服务器可以很好地为它们提供服务,但如浏览器历史记录所示,标题是文件名。我希望能够设置该标题

也许有一个可以设置的标题


我不想编写脚本来为文件提供服务,因为服务器可以处理内容编码协商(例如,对于gzip),并进行流控制,我不想重新创建这些内容。

我怀疑您遇到的问题是客户端浏览器将文件名存储在历史记录中,您无法修复

上次我检查时,历史记录中的标题来自HTML页面的设置(不是标题),因此标题应该没有HTTP标题字段


我不是HTTP专家,也不知道所有字段,但我不记得在我使用过的任何服务器中都有设置页面标题的设置(只是状态代码、协议等)。

这是一个可以设置的HTTP头

Content-Disposition:inline; filename="*File name you want*";

很老的问题,我知道。 但我今天遇到了完全相同的问题,并找到了解决办法

我创建了一个PHP脚本(例如download.PHP,文件名不重要),如下所示:

<?php
header("Content-Type: application/pdf");
header('Content-Disposition: inline; filename="'.addslashes($_REQUEST['title']).'"'); //filename doesn't set the browser title here, only when page is saved/downloaded
$content = file_get_contents($_REQUEST['filename']);
header('Content-Length: '.strlen($content));
echo $content;

Right——历史记录中的名称将是页面标题。但是得到的链接是静态资产(PDF文件),而不是HTML文件,因此无法在(不存在的)标题部分设置标题标记。实际上-Safari(我使用的)显示在历史记录中“(没有标题)”。正如我所说,历史记录中的标题是HTML标题部分的子项。通过查看HTTP头,无法设置页面的标题。如果您想在历史记录中显示PDF标题,则需要一个可以查看PDF并呈现其标题的浏览器。这将在下载时设置文件名,而不是在chrome/firefox中显示的标题。