2

私の(drupal)Webサイトには、表示/ダウンロードできるpdfがあります。

http://www.mysite.de/assets/thefile.pdf

Firefox は、ダウンロードするのではなく、ブラウザ内で PDF を表示することもできます。問題は、少なくとも私たちの < win7 ユーザーにとっては、pdf ビューアが非常にバグが多いことです。

私は .htaccess にはあまり詳しくありませんが、ブラウザにファイルをダウンロードするように指示するファイル ヘッダーを設定することは可能だと思います。しかし、ユーザーエージェントに応じて条件付きでそれを行うにはどうすればよいですか?

私が知る限り、対象となるユーザー エージェントは/.*(windows nt 5\.1).*(firefox).*/i(win xp 以下の firefox である可能性があります) です。

編集:次のようにファイルを強制的にダウンロードできることを知っています:

<FilesMatch "\.(?i:doc|odf|pdf|rtf|txt)$">
  Header set Content-Disposition attachment
</FilesMatch>

ただし、別の条件、つまりユーザー エージェントを追加する方法については説明しません。

4

1 に答える 1

3

特定のファイル拡張子のダウンロードを強制したい場合、最も簡単な方法はmod_mimeディレクティブであるAddTypeを使用することです。pdf の場合、次の行をファイル に追加できます。
.htaccess

AddType application/octet-stream .pdf

重要なのはoctet-stream、これがダウンロードを強制する (そしてブラウザのダウンロード ポップアップで "開く..." 項目を禁止する) 人物だということです。


お役に立てれば!


編集(コメントでの質問者のリクエスト)
私が行かなければならないので、できるだけ多くの詳細を提供しようとします.
ユーザー エージェントの「防止」を追加する場合は、次の行が必要です。

RewriteCond %{HTTP_USER_AGENT} ^UserAgentNameHere [OR]
(...more user agents...then last one:....)
RewriteCond %{HTTP_USER_AGENT} ^AnotherUserAgentsName
RewriteRule ^.* - [F,L]

たとえば、「異なるブラウザーのみにダウンロードを強制する」という意味であれば、 Expressionsのサポートが必要になるため、Apache Server v2.4 が必要です。そしてこの場合、これを行うことができます:

<If "%{HTTP_USER_AGENT} == '.*MSIE.*'">
    AddType application/octet-stream .pdf
</If>

他のことを意味する場合は、具体的に記入してください(他の何かに関連するこの質問を更新/変更/コメントする代わりに、別の質問を投稿できれば素晴らしいでしょう)

于 2013-06-24T11:12:01.980 に答える