
我剛剛設定了一個 Apache2 伺服器並且運作正常。由於此伺服器的目的只是提供版本化文件,因此我創建了一個latest
符號鏈接,其目標為例如 myfile_v1.1.0.ext
。
問題是,當我訪問 URL 時http://localhost/latest
,下載視窗顯示latest
為檔案名稱和application/octet-stream
MIME 類型。
我希望當我訪問同一個 URL 時,它會顯示myfile_v1.1.0.ext
為檔案名稱和application/my-app
MIME 類型。
有辦法實現嗎?
提前謝謝了
答案1
一種方法是在 Apache 配置中使用別名。缺點是每次發佈時您都需要更新它,但好處是您可以更好地控製文件的處理方式。
您可以這樣做:
.conf
編輯網站的Apache文件- 在該部分中添加此內容
<VirtualHost>
:
筆記:請務必替換Alias "/download" "/path/to/releases/myfile_v1.1.0.ext" <Directory "/path/to/releases"> Options FollowSymLinks AllowOverride All <FilesMatch "\.(ext|zip)$"> Header set Cache-Control "max-age=1209600, public" ForceType application/tar+gzip </FilesMatch> </Directory>
application/tar+gzip
為文件的正確內容類型。 - 儲存檔案並重新啟動 Apache:
筆記:請隨意sudo service apache2 restart
restart
切換reload
。 - 通過訪問測試 url
your.site/download
這已經在 Ubuntu Server 20.04.3 LTS 和 Apache 2.4.41 上進行了測試
答案2
解決方案是簡單地Redirect
在您網站的 Apache 設定檔中新增一條指令。
Redirect "/latest" "files/myfile_v1.1.0.ext"