我有一个 jar 文件,我想让用户通过一个简单的子域轻松访问它。目前,他们访问https://subdomain.example.com/application.jar
并直接开始下载应用程序。我更愿意将其缩短为https://subdomain.example.com/
,当他们浏览该链接时,链接要么重定向(可能.htaccess
)到application.jar
资源,要么索引页上有一些代码可以启动应用程序的下载。
此子域名专门用于应用程序。它本质上是https://application.example.com/application.jar
。没有提供其他页面或内容。只是一个简单的链接,用于直接下载资源。实现此目的的最佳和最简单的方法是什么?
我尝试过将 DNS 记录直接指向资源。但没成功。我尝试过 301 重定向,但可能操作不正确。我还没有尝试过使用可能包含一些 JavaScript 的索引页,因为这感觉是一种过于复杂且容易失败的方法。
答案1
你可以设置DirectoryIndex
:
DirectoryIndex application.jar
以下几行需要mod_headers
并将提供下载的正确文件名:
<Files application.jar>
ForceType application/java-archive
Header set Content-Disposition "attachment; filename=application.jar"
</Files>
然而,正如我已经怀疑的那样,并非所有客户端都尊重这些标头。使用 Chrome,我在 testes 中获得了正确的文件名,wget 忽略了它并将文件存储为index.html
总体而言,301 更合适。有效的重定向将是:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^ "/application.jar" [R]
这会将该子域上不存在的任何文件路径重定向至/application.jar
。