czy wartość RewriteBase jest dostępna jako zmienna / referencja?
Piszę plik .htaccess, który sprawdzi, czy żądana strona istnieje w pamięci podręcznej, czy nie. Aby wykonać sprawdzenie (i zapisać wpisywanie), ustawiam zmienną ENV z lokalizacją pamięci podręcznej:
# all this works as I expect #
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /some/path/
RewriteRule ^(.*)$ - [E=rewritebase:/some/path/,E=cache:%{ENV:rewritebase}cache/]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{ENV:cache}$1\.html -f
RewriteRule ^(.*)$ $1\.html [L]
</IfModule>
Jak widzisz, muszę także ustawić zmienną ENV, aby stała się wartością RewriteBase. Wolałbym nie, ponieważ jeśli RewriteBase zostanie zmieniona, musiałbym pamiętać także o zmianie zmiennej ENV. Ostatecznie może to być część systemu CMS używanego przez innych, który chciałbym skonfigurować tak prosto / prosto, jak to tylko możliwe, z najmniejszą ilością błędów. Chciałbym móc ustawić tylkoENV:cache
zmiennabez potrzeba ustawieniaENV:rewritebase
zmienna, tak jak (lub podobna):
# doesn't work #
RewriteRule ^(.*)$ - [E=cache:%{RewriteBase}cache/]
Zgodnie z sugestiącache/
katalog zawsze będzie znajdować się w katalogu określonym w RewriteBase. [edytować]
. . . jednak tak będzienie zawsze jest ścieżką fizyczną, na której znajduje się ten plik .htaccess.
[/edytować]
Chętnie też usłyszę alternatywne sugestie. Dziękuję wszystkim!