Eu não testei, mas você pode tentar:
RewriteEngine on
RewriteMap md5create prg:/usr/local/sbin/md5create.pl
RewriteRule ^(.*) %{REQUEST_URI} [E=MD5HASH:${md5create:$1}]
script md5create.pl para criar o md5sum
É possível criar uma string hash md5 da solicitação atual uri e atribuí-la como uma variável env para que eu possa lê-la a partir do PHP?
Uma alternativa para um cache básico usando o htaccess puro é carregar de um cache que reflita o URI de solicitação, na verdade, você compila seus arquivos na estrutura de árvore que seus URLs dinâmicos indicam.
Por exemplo:
Request: http://domain.com/foo/
Estrutura do arquivo:
Top Level: index.php,cache/
[Inside the cache/ directory -->] index.php, foo/
Você tem a ideia - é como se estivesse criando um site estático, mas armazenou a versão em cache do site dentro de uma pasta "cache".
Então seu .htaccess
# Add cache directory to request, store original request
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.*)/?$ /cache/$1 [E=orig:$1]
# Does the request exist as a directory in the cache folder?
# Yes -> load the cached page
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ %{REQUEST_FILENAME} [L]
# No -> continue with system rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/%{ENV:orig} [L]
Juntamos isso para que pudéssemos melhorar, e confiamos que seu diretório de cache seja automaticamente preenchido como uma estrutura de arquivos, mas achamos que pode ser útil, já que é um htaccess puro.
Seus scripts do lado do servidor precisariam atualizar a estrutura de arquivos do cache e fazer o serviço de limpeza.
Você pode fazer isso usando a variável global $_SERVER["REQUEST_URI"]
e usar a função interna PHP md5()
para gerar isso.
Se você quiser executar isso toda vez, basta adicionar o código php à variável auto_prepend_file
no php.ini.
Tags .htaccess apache-2.2