.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>

그러나 이로 인해 내부 서버 오류가 발생하고 로그에 다음 오류 메시지가 표시됩니다.

여기서는 유효하지 않습니다

mod_headers가 활성화되어 있지 않으므로 대체 캐시 제어 방법을 사용할 수 없습니다. .htaccess 파일의 일부 명령을 통해 mod_expires를 사용하여 Expires 헤더를 계속 사용할 수있는 방법이 있습니까?

업데이트
httpd.conf의 재정의 설정과 관련이있을 수있는 곳을 읽은 것을 기억합니다. 이것이 실제로 문제인지 확인하는 방법이 있습니까? 그렇다면 내 웹 사이트의 캐싱 헤더를 제어하는 ​​해결 방법이 있습니까?

답변:


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

관심있는 두 필드는 컨텍스트와 대체입니다. AllowOverride Indexes를 사용하는 한 .htaccess 파일에서 ExpiresActive를 사용하는 것이 좋습니다.

최신 정보:

만료 헤더가 필요합니다. /programming/1036941/setup-expires-headers-php-apache를 확인 하십시오.

도움이 되었기를 바랍니다:)


귀하의 답변에 감사하지만 내 질문에 이미 나와 있듯이 웹 루트의 .htaccess 파일 이외의 서버 구성에 액세스 할 수 없습니다. 따라서 AllowOverride가 올바르게 설정되지 않으면 운이 없습니다.
Daan

이에 대해서는 제공자에게 문의하십시오. 인덱스를 허용하지 않는 것은 어리석은 일입니다. 그리고 그렇습니다. 변경하지 못하면 mod_expires가 나올 때까지 쫓아 냈습니다.
룬 닐슨

서비스 제공 업체가 AllowOverride 매개 변수를 변경하지 않으면 다른 조치를 취할 수 없습니다.
DaveG

3

htaccess가있는 폴더의 Apache conf에 "AllowOverride Indexes"를 추가하면 나에게 도움이되었습니다. 여기에서 해결책을 찾았습니다 http://speedforce.org/2009/01/were-back/


1
귀하의 답변에 감사하지만 내 질문에 이미 나와 있듯이 웹 루트의 .htaccess 파일 이외의 서버 구성에 액세스 할 수 없습니다. 따라서 AllowOverride가 올바르게 설정되지 않으면 운이 없습니다.
Daan

1

/etc/httpd/conf/httpd.conf의 RHEL

AllowOverride 변경 없음

FileInfo 옵션 색인을 재정의하는 방법


2
귀하의 답변에 감사하지만 다시 한 번, 내 질문에 이미 나와 있습니다 : 웹 루트의 .htaccess 파일 이외의 다른 서버 구성에 액세스 할 수 없습니다. 따라서 AllowOverride가 올바르게 설정되지 않으면 운이 없습니다.
Daan

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.