Por seu comentário, isso realmente parece ser um problema básico de sintaxe. No futuro, eu sugeriria executar nginx -t
(sem sudo
) para exibir erros de configuração.
Eu acho que um arquivo try é preferível ao reescrever, mas de qualquer forma, aqui está o que eu uso para um site Moodle.
location / {
try_files $uri $uri/ /index.php/$request_uri;
}
location ~ .php($|/) {
set $script $uri;
if ($uri ~ "^(.+.php)(/.+)") {
set $script $1;
}
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$script;
fastcgi_temp_file_write_size 10m;
fastcgi_busy_buffers_size 512k;
fastcgi_buffer_size 512k;
fastcgi_buffers 16 512k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_intercept_errors on;
fastcgi_next_upstream error invalid_header timeout http_500;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
Infelizmente, as regras exatas para reescrever as regras parecem mudar sutilmente para cada mecanismo, mas o nginx é popular o suficiente para que o Googling nginx url <<engine, eg wordpress>>
obtenha algumas sugestões.