.htaccessファイルの「ExpiresActive not allowed here」エラーメッセージを解決する方法


11

作業中のサイトのHTTP応答にExpiresヘッダーを追加しようとしています。Apache 1.3サーバーを制御する唯一の方法は、.htaccessファイルを編集することです。Expiresヘッダーを有効にするために、次のようなコードを追加してみました。

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 1 hour"
</IfModule>

ただし、これにより内部サーバーエラーが発生し、ログに次のエラーメッセージが記録されます。

ExpiresActiveはここでは許可されません

mod_headersが有効になっていないため、おそらくキャッシュ制御の代替方法を使用できません。.htaccessファイルのいくつかのコマンドでmod_expiresを使用してExpiresヘッダーを有効にできる方法はありますか?

更新
httpd.confのOverride設定が何か関係があるかもしれないことをどこかで読んだことを思い出します。それが実際に問題であることを検証する方法はありますか?そうであれば、とにかく私のウェブサイトのキャッシュヘッダーを制御するための回避策はありますか?

回答:


12

一般的に、このような問題に対処する最も簡単な方法は、マニュアルを参照することです。

http://httpd.apache.org/docs/1.3/mod/mod_expires.html#expiresactive

Syntax:      ExpiresActive On|Off
Context:     server config, virtual host, directory, .htaccess
Override:    Indexes
Status:      Extension
Module:      mod_expires

関心のある2つのフィールドは、コンテキストとオーバーライドです。AllowOverride Indexesに限り、.htaccessファイルでExpiresActiveを使用しても問題ないことがわかります。

更新:

expireヘッダーの必要性に対処するため。チェックアウト/programming/1036941/setup-expires-headers-php-apacheを

お役に立てれば:)


ご回答いただきありがとうございます。しかし、私の質問にすでに述べているように、Webルートの.htaccessファイル以外にはサーバーの構成にアクセスできません。したがって、AllowOverrideが正しく設定されていない場合、私は運が悪いです。
大安

それについてはプロバイダーに相談してください。インデックスを許可しないのは愚かなことです。そして、はい、彼らがそれを変更できない/できない場合は、mod_expiresが行く限りあなたは三振します。
ルーンニルセン

ルーンのポイントをエコーするために-サービスプロバイダーがAllowOverrideパラメーターを変更しない場合、他にできることはありません。
DaveG

3

「AllowOverride Indexes」を、htaccessが入っているフォルダーのApacheのconfに追加してくれました。ここで解決策を見つけましたhttp://speedforce.org/2009/01/were-back/


1
ご回答いただきありがとうございます。しかし、私の質問にすでに述べているように、Webルートの.htaccessファイル以外にはサーバーの構成にアクセスできません。したがって、AllowOverrideが正しく設定されていない場合、私は運が悪いです。
大安

1

/etc/httpd/conf/httpd.confのRHELで

AllowOverrideなしの変更

FileInfoオプションインデックスを許可する方法


2
ご回答ありがとうございます。しかし、私の質問が既に述べているように、Webルートの.htaccessファイル以外にはサーバーの構成にアクセスできません。したがって、AllowOverrideが正しく設定されていない場合、私は運が悪いです。
大安

0

私の場合、mod_expiresは使用できませんが、headers_moduleは使用できます(Apache 2.0で):

# match all these file types, regardless of upper/lowercase
<FilesMatch "\.(?i:jpg|png|gif|js|css)$">
    # 60 seconds * 60 minutes * 24 hours * 7 days
    Header set Cache-Control "max-age=604800, public, must-revalidate"

    # alternative: never expire headers (do look up the caveats)
    # Header set Expires "Thu, 01 Jan 2030 08:08:00 GMT"
    # Header set Cache-Control "public, no-transform"

    # further (debatable) optimizations
    # FileETag None
    # Header unset ETag
    # Header unset Last-Modified
</FilesMatch>

0

Apache 2.4 / CentOS 7でも同じ問題が発生しました。構成ファイルの構文は次のとおりです。「AllowOverride Options = Indexes」

<Directory /var/www/html/>
  Options Indexes FollowSymlinks
  AllowOverride Options=Indexes
</Directory>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.