Eu estava tentando aprender as reescritas, fazendo algo assim:
^/blog/install/(.*)$ --> /blog/install/index.php?_p=$1
No entanto, essas reescritas simplesmente falharam, e foi difícil investigar, então eu olhei e achei rewrite_log on
como um recurso apropriado para me ajudar. Meu error_log dentro do meu bloco de servidores está definido como notice
level de acordo com o guia NGINX, mas onde quer que eu coloque rewrite_log on
e recarregue ele nunca irá registrar nada relacionado a reescritas, apenas erros nginx / php!
Eu tentei até definir error_log
para debug
, a única informação relevante que ele me daria é a seguinte linha:
2015/12/14 13:46:26 [debug] 17458#0: *4494 http copy filter: 0 "/blog/install/index.php?_p="
2015/12/14 13:46:26 [debug] 17458#0: *4494 http finalize request: 0, "/blog/install/index.php?_p=" a:1, c:1
No entanto, nada em torno dele (envolvendo linhas falando sobre SSL e filtragem HTTP) menciona exatamente o que vai depois de _p=
ou de todos.
Alguns testes que usei para reescrever, tentei muitas combinações de:
location /blog/install {
try_files $uri $uri/ @install;
}
location @install {
fastcgi_pass unix:/var/run/php5-fpm-site_mainsite.sock;
fastcgi_param SCRIPT_FILENAME $document_root/blog/install/index.php;
fastcgi_param QUERY_STRING _p=$uri&$args;
include fastcgi_params;
}
Ou algo parecido ...
location /blog/install {
rewrite ^/blog/install/(.*)$ /blog/install/index.php?_p=$1? last;
}
E todas as classificações relacionadas, no entanto, o melhor que posso obter é uma página sem CSS (estou supondo que esteja reescrevendo arquivos não-PHP também) ou um próximo botão que não vá para lugar nenhum (está enviando / nextpage / para quem sabe, o vazio) e eu não posso depurar nada disso! Alguma pista?
Coisas que eu verifiquei ..
/var/log/nginx/errors.log
menciona somente o recarregamento do nginx quando eu uso o reload
para seu serviço
nginx -V
mostra --with-debug
, se isso for importante dar de ombros
Minha configuração atual do NGINX para isso é:
error_log /home/site_mainsite/log/errorslog.log notice;
rewrite_log on;
E tenho certeza de que está fazendo reescritas , pois somente /blog/install
permitirá caminhos arbitrários após os quais não existem, enquanto / blog / nonexistentblabla dê-me um 404, ainda, não reescrever registros ..
Tags nginx mod-rewrite log-files