私のApacheサーバーには、いくつかのdocx、xlsx pptxファイルを保存しました。
一部のクライアントブラウザーは、これらが通常のZipファイルであると考え、ダウンロード時にファイル拡張子を変更します。どうすればそれができなくなりますか。
(Ubuntuサーバーを使用)
ファイルは実際にはXMLドキュメントのZIPです。これをApacheの.htaccessに追加します
AddType application/vnd.ms-Word.document.macroEnabled.12 docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
AddType application/vnd.ms-PowerPoint.template.macroEnabled.12 potm
AddType application/vnd.openxmlformats-officedocument.presentationml.template potx
AddType application/vnd.ms-PowerPoint.addin.macroEnabled.12 ppam
AddType application/vnd.ms-PowerPoint.slideshow.macroEnabled.12 ppsm
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
AddType application/vnd.ms-PowerPoint.presentation.macroEnabled.12 pptm
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
AddType application/vnd.ms-Excel.addin.macroEnabled.12 xlam
AddType application/vnd.ms-Excel.sheet.binary.macroEnabled.12 xlsb
AddType application/vnd.ms-Excel.sheet.macroEnabled.12 xlsm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
AddType application/vnd.ms-Excel.template.macroEnabled.12 xltm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
サーバーに新しいmsファイルタイプ用に設定された適切なMIMEタイプがありません
以下を/etc/mime.typesファイルに追加し、Apacheを再起動すると、問題が修正されます。
# Added by myname 2009-06-03
application/vnd.ms-Word.document.macroEnabled.12 docm
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
application/vnd.ms-PowerPoint.template.macroEnabled.12 potm
application/vnd.openxmlformats-officedocument.presentationml.template potx
application/vnd.ms-PowerPoint.addin.macroEnabled.12 ppam
application/vnd.ms-PowerPoint.slideshow.macroEnabled.12 ppsm
application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
application/vnd.ms-PowerPoint.presentation.macroEnabled.12 pptm
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
application/vnd.ms-Excel.addin.macroEnabled.12 xlam
application/vnd.ms-Excel.sheet.binary.macroEnabled.12 xlsb
application/vnd.ms-Excel.sheet.macroEnabled.12 xlsm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
application/vnd.ms-Excel.template.macroEnabled.12 xltm
application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
http://www.webdeveloper.com/forum/showthread.php?t=162526 にはこの問題に関する情報があります
Webサーバーがこれらのファイル内のマジックナンバーを見て、それらがZipファイルであることを確認しているようです。
見てください: http://www.webdeveloper.com/forum/showthread.php?t=162526
私はこの問題に関係するサーバーとクライアントマシンの両方を完全に管理しています。これらの提案された解決策のどれも、この問題を修正するために機能しませんでした。
結局のところ、この問題を修正したのは...
1)7-Zipをアンインストールします(ブラウザにはZipファイルに関連付けるものはありません)
2)(この手順が必要かどうかはわかりませんが)DOCXを再度ダウンロードしました(偶然にも、それはまだZipファイルとして表示されています)。ただし、今回はどのアプリケーションで開くかを尋ねられます。 MSWORDを選択します。 MSWORDで常にZipファイルを開く必要がないため、[常にMSWORDで開く]を選択しません。
3)7-Zipを再インストールします。
その後、その後DOCXをダウンロードしようとすると、実際にDOCXファイルがダウンロードされ、適切なMSWORDアプリケーションで開かれます。
注:ファイルの関連付けが壊れているという結論にジャンプする前に、この問題が発生したときにエクスプローラーでDOCXをダブルクリックすると、MSWORDが常にそれを開くことを確認します。この問題は常に、IE8でDOCXをダウンロードまたは開こうとしたときにのみ発生していました。 FF4とChrome=は問題なく動作しました。適切なMIMEタイプを/ etc/mime-typesと.htaccessにサーバー側で追加してみました。また、「コンテンツに基づいてファイルを開く、ファイル拡張子ではありません」(ただし、これによりブラウザはDOCXを読み取り不能として開くASCII text)、FEATURE_MIME_ *レジストリキーを「0」に設定し、サーバーURLを「信頼できるサイト」のリストです。繰り返しますが、私にとっては、これらの論理的な解決策はどれもうまくいきませんでした。
http://packages.ubuntu.com/oneiric/mime-support をダウンロードし、dpkg -iを使用してインストールします。よくできました!
PS:UbuntuおよびDebian上のApacheは/etc/mime.typesから読み取ります