<FilesMatch>
corresponde a arquivos físicos (não URLs), portanto, isso nunca corresponderá a uma URL do formulário styles.<version-id>.css
, em que o arquivo físico é styles.css
.
<LocationMatch>
(na configuração do servidor) é o equivalente para URLs, mas você está reescrevendo o URL e% wrappers% co_de são aplicados atrasados, então, novamente, isso nunca corresponderá.
(Com base no formato e no comportamento dessas diretivas, presumo que essas diretivas estejam em um diretório / <Location[Match]>
context, em oposição a diretamente no servidor de configuração / host virtual?)
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)\.[0-9a-f]{32}(\.[0-9a-z]{2,6})$ $1$2 [L,E=AutoVersion] Header set Cache-Control "max-age=31536000, public" env=AutoVersion
Mas você pode fazer isso com a ajuda do mod_rewrite para definir uma variável de ambiente - como você fez. Isso teria funcionado praticamente como está se usado diretamente na configuração do servidor. (Exceto que .htaccess
precisaria mudar para REQUEST_FILENAME
para funcionar como pretendido, caso contrário, a diretiva LA-U:REQUEST_FILENAME
iria sempre avaliar true.)
No entanto, em um contexto por diretório, o processo de regravação inicia novamente após a reconfiguração inicial e as variáveis de ambiente são prefixadas com RewriteCond
(a variável de ambiente original não é retida). Assim, você só precisa alterar sua diretiva REDIRECT_
para verificar essa variável de ambiente renomeada . Por exemplo:
Header set Cache-Control "max-age=31536000, public" env=REDIRECT_AutoVersion