diretiva de localização Nginx e scripts php

1

Eu tenho um problema com uma diretiva de localização do Nginx. Eu preciso ser capaz de enviar qualquer URI através do fastcgi para que ele acabe em um framework PHP. Mas também quero configurar uma regra na qual qualquer URI iniciado por / users seja redirecionado (digamos que o link ). Então é assim que eu estou fazendo isso:

    location ~* ^/users*$ {
            rewrite ^ http://www.google.com? permanent;
    }

    location ~* \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_intercept_errors on; # to support 404s for PHP files not found
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }

Eu posso ir para qualquer URL e ele irá enviá-lo através do framework PHP que estou usando, então essa parte funciona. No entanto, o redirecionamento / users * não funciona. Se eu comentar a segunda direção de localização (para os arquivos PHP), o / users * redirect funciona, mas na verdade faz o download do index.php como um arquivo antes de redirecionar para link .

Como posso fazer isso funcionar como planejado?

    
por John 01.10.2011 / 17:38

1 resposta

1

O regex ^/users*$ provavelmente não corresponde ao que você espera que corresponda. Algo como ^/users.*$ ou ^/users será muito mais abrangente.

    
por 01.10.2011 / 19:15

Tags