2015-10-17 84 views
1

下載所以我使用htaccess的以下規則:強制文件用的.htaccess

AddType SCHM wsc 
 

 
<FilesMatch "\.(wsc)$"> 
 
    ForceType SCHM 
 
    Header set Content-Disposition attachment 
 
</FilesMatch>

但是當我去file's location它不強制下載

+0

您使用哪種瀏覽器?我的Chromium 45下載文件 – Reeno

+0

我使用的是Chrome,但是其他網站上的[類似文件](http://wsdb.fullwormage.com/738.wsc)適用於我,但是在我的ftp上只顯示了在瀏覽器中使用二進制文件 – lopata

+0

也許你應該把Content-Type設置爲application/octet-stream。我認爲這樣的想法:'標頭設置內容類型應用程序/八位字節流' – JojOatXGME

回答

2

由於問題已經在評論中得到了解答,這只是爲了提供一個Stackoverflow指定方式的答案。

就像在這個問題可以通過使用的mod_headers中的Apache 2來解決。由於Content-Disposition不是HTTP標準的一部分,因此您可以添加一些其他標題來實現您的目標。

<FilesMatch "\.(wsc)$"> 
    Header set Content-Type application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

您應該考慮的另一件事是您的瀏覽器可能會緩存服務器的響應。瀏覽器仍然會發送請求,但請求將包含一個節點,瀏覽器已經從給定的日期獲得文件。如果文件自給定日期以來沒有更改,服務器將不會將新標題發送到您的瀏覽器。這意味着,如果您更改.htaccess,則直到您在瀏覽器中禁用緩存或更改文件的時間戳之後,纔可能看到任何影響。


您還可以添加

Header set X-Content-Type-Options "nosniff" 

更好的兼容性(也許安全性)。它可以防止瀏覽器進行MIME類型的嗅探,這會忽略聲明的內容類型。有關更多信息,請參閱here

+1

這是正確的,但是(雖然沒有強制執行)文件名被附加到附件處置類型之後,並且有一些瀏覽器(IE)嗅探出二進制文件的前幾個字節來猜測mimetype,這裏是一個完整的(er)[解決方案](http://stackoverflow.com/a/34758866/257319) – 2016-01-13 05:49:57