REQUEST_URI começa com /, então, em vez deste:
RewriteCond %{REQUEST_URI} !^images/gallery/summer/2013/(.*)$
tente isto:
RewriteCond %{REQUEST_URI} !^/images/gallery/summer/2013/(.*)$
eu tenho um RewriteCond como:
RequestURL: link
RewriteCond %{REQUEST_URI} !images/gallery/summer/2013/*
RewriteRule ^images/gallery/summer/(.*)$ http://xyz.s3.amazonaws.com/$1 [P]
Isso funciona bem e a imagem é extraída do Amazon S3.
Mas por que diabos um RegEx não funciona no RewriteCond como:
RewriteCond %{REQUEST_URI} !^images/gallery/summer/2013/(.*)$
É só que eu quero entender por que o código acima funciona e o outro não funciona?
OBRIGADO
REQUEST_URI começa com /, então, em vez deste:
RewriteCond %{REQUEST_URI} !^images/gallery/summer/2013/(.*)$
tente isto:
RewriteCond %{REQUEST_URI} !^/images/gallery/summer/2013/(.*)$
A resposta de Mike está correta. Considere ligar o RewriteLog para observar o que o mod_rewrite está realmente fazendo. Isso lhe dará uma visão muito melhor sobre como suas regras devem realmente parecer.
Além disso, colocar (. *) $ no final de um RewriteCond é desnecessário e ineficiente, a menos que você esteja realmente planejando usar o valor de% 1 em um RewriteRule posterior.