Como resolver a mensagem de erro "ExpiresActive not allowed here" no arquivo .htaccess?

10

Estou tentando adicionar cabeçalhos dos Expires às respostas HTTP do site em que estou trabalhando. A única maneira de controlar o servidor Apache 1.3 é editando o arquivo .htaccess. Eu tentei adicionar código como o seguinte para ativar os cabeçalhos de expiração:

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

No entanto, isso resulta em um erro interno do servidor com a seguinte mensagem de erro no log:

ExpiresActive not allowed here

Eu provavelmente não posso usar métodos alternativos de controle de cache, já que os mod_headers não estão habilitados. Existe alguma maneira que eu ainda possa ativar o cabeçalho Expires usando mod_expires através de alguns comandos no arquivo .htaccess?

Atualizar
Lembro-me de ler em algum lugar que as configurações do Override no httpd.conf podem ter algo a ver com isso. Existe alguma maneira de validar que esse é realmente o problema? Em caso afirmativo, existe alguma solução alternativa para controlar os cabeçalhos de armazenamento em cache do meu site?

    
por Daan 15.10.2009 / 13:56

5 respostas

11

Em uma nota geral, a maneira mais simples de lidar com problemas como este está se referindo ao manual.

link

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

Os dois campos de interesse são Context e Override. Como podemos ver o seu OK para usar ExpiresActive em um arquivo. Htaccess ao longo como você AllowOverride Indexes

Atualização:

Para atender à sua necessidade de expirar cabeçalhos. Confira o link

Espero que isso ajude:)

    
por 30.12.2009 / 09:08
3

Adicionando "AllowOverride Indexes" ao conf do Apache para a pasta onde você tem o htaccess em funcionamento para mim. Encontrou a solução aqui link

    
por 30.12.2009 / 06:57
1

no RHEL em /etc/httpd/conf/httpd.conf

altere AllowOverride Nenhum

para índices de opções de FileInfo AllowOverride

    
por 10.11.2010 / 18:47
0

No meu caso, mod_expires não está disponível, mas headers_module é, isso funciona muito bem (no 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>
    
por 28.09.2011 / 13:05
0

Eu tive o mesmo problema no Apache 2.4 / CentOS 7. A sintaxe para o arquivo de configuração agora é: "AllowOverride Options = Indexes"

<Directory /var/www/html/>
  Options Indexes FollowSymlinks
  AllowOverride Options=Indexes
</Directory>
    
por 03.06.2015 / 09:15