My server has just wiped out by the provider, and I don't have the backup of the Nginx configuration file. It was completely lucky I got it working, now I don't know what to do.
So I am having multiple files to do some specific things, and I am using Slim Framework on each file. The idea is to keep the php extension on the URL. Something like this:
www.example.com/service.php/customer/1
www.example.com/api.php/data
www.example.com/test.php/other-data/5
Does anyone have some clue on this? I really forgot what I did before with the configuration.
Thank you in advance
If somehow someone goes here, I finally found the answer.
server {
listen 80; ## listen for ipv4; this line is default and implied
root /usr/share/nginx/www;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
deny all;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}}
As suggested in the comments, it's probably a better idea to rewrite your urls so that '.php' is removed :
Your NGINX configuration file should then look like this :
server {
listen 80;
server_name example.org;
rewrite ^/(.*).php/(.*) /$1/$2 //add this line to get rid of '.php'
}
See : http://nginx.org/en/docs/http/ngx_http_rewrite_module.html for in-depth information.
Don't forget to restart your NGINX service after editing its configuration.