WordやExcelの資料をダウンロードしてほしい場合に、リンク先を以下のように指定することがあります。
<a href="doc/shiryo.docx">資料はこちら</a>
このようにリンク先にWordやExcelの資料を指定すると、通常はリンクをクリックした時にファイルがダウンロードされます。
ですが、先日シックスコアで運用中のサイトで、拡張子がdocxやxlsxの場合のみ、ダウンロードではなくブラウザ内でファイルを開こうとすることがありました。ブラウザでWordやExcelのファイルを開こうとしているため、文字化けだらけの何が何だかわからないページが表示されてしまいます。拡張子をdocやxlsにすると問題なくダウンロードしてくれます。
始めはWordPressの問題かと思ったのですが、結果的にWordPressは関係なく、サーバーの設定による挙動であることがわかりました。
というわけで、備忘録として対処法を残しておきたいと思います。
リンク先にdocxやxlsxを指定した時にクリックしてもファイルがダウンロードされない場合の対処法
docxやxlsxのファイルがリンク先に指定されている場合に、リンクをクリックしてもファイルがダウンロードされない時は、.htaccessに以下を追記します。
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx AddType application/vnd.openxmlformats-officedocument.presentationml.presentation .pptx
上記を追加することで、「docx」「xlsx」「pptx」のMIMEタイプを正しく認識できるようになります。MIMEタイプを正常に認識できることで、ブラウザで開こうとせずちゃんとダウンロードしてくれるようになります。
あとがき
ダウンロードはできるけど拡張子が「zip」になってしまう、という場合にも上述した対処は有効です。
拡張子によって挙動がおかしくなるといった時は、ぜひ試してみてください。