mod_rewrite: Dostęp do ścieżki URL w RewriteCond


Jak mogę dopasować ścieżkę adresu URL z
       RewriteCond
w
       .htaccess
?
Chciałbym to, ponieważ próbuję uczynić jeden podkatalog mojego serwera WWW przezroczystym żądaniami proxy + pamięci podręcznej do innego serwera i chciałbym pisać
       .htaccess
lubię to:
RewriteCond "%{ENV:CACHE_BASE}/%{URL_PATH}" -f
RewriteRule (.*) "%{ENV:CACHE_BASE}/$1" [L]
RewriteRule (.*) "download_and_cache.cgi?$1"

W związku z tym żądania dotyczące plików, które już istnieją w pamięci podręcznej, będą wysyłane z serwera Apache, a żądania dotyczące plików, które nie znajdują się w pamięci podręcznej, będą przetwarzane.
       download_and_cache.cgi
skrypt (który umieści je w pamięci podręcznej).
Uwaga: nie mogę użyć
       %(REQUEST_URI}
ponieważ jeśli
       .htaccess
żyje w
/foo/
, podanie o
/foo/README.txt
spowoduje sprawdzenie pamięci podręcznej
       $CACHE_BASE/foo/README.txt
, zamiast
       $CACHE_BASE/README.txt
jak powinno.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Mój Mod_rewrite jest trochę zardzewiały, ale nie będziesz mógł z niego korzystać

RewriteBase
http://httpd.apache.org/docs/2 ... ebase
dyrektywa księgowa „/ foo”
Albo myślę, że możesz użyć czegoś takiego jak link zwrotny
RewriteCond %{REQUEST_URI} foo/(.*)
RewriteCond "%{ENV:CACHE_BASE}/%1" -f

Lub, jeśli wszystko postępuję poprawnie, przepisz najpierw do pamięci podręcznej, a następnie sprawdź, czy musisz go najpierw załadować. Lubię to:
RewriteRule foo/(.*) "%{ENV:CACHE_BASE}/$1" [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (.*) "download_and_cache.cgi?$1"

Jeśli możesz użyć

FallbackResource
http://httpd.apache.org/docs/2 ... ource
sprawi, że powyższe będzie trochę czystsze.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się