RewriteCond RequestURI porque o RegEx não funciona?

2

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

    
por chrisK 07.07.2013 / 14:58

2 respostas

3

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/(.*)$
    
por 07.07.2013 / 15:20
1

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.

    
por 08.07.2013 / 15:26