nginx: ta bort .php från URL
Tjenare!
Gick över från Apache - Nginx på dev servern idag man har lite problem, det enda jag vill göra är att ta bort .php från URL:er och ersätta med en / i slutet av URL:er.
Just nu fungerar allt som körs på index.php bra, bara till att gå till www.example.com så körs ju indexfilen som vanligt, men går man till www.example.com/about/ (www.example.com/about.php) så får jag bara meddelandet: "File not found.", direktnavigering till: www.example.com/about.php fungerar fint. Men ja, Nginx verkar inte skriva om URL:erna korrekt så då hittar den inte PHP filen, hur löser jag detta? Har testat varenda svar som hittades via Google sökningar men nepp, inget fungerar, ibland verkar det som om svaren utgår från att man kör något MVC liknande (som tex WordPress) som alltid utgår från att man kör från index.php och ibland kanske index.php{query_string}, det gör jag inte i just detta fallet, vill bara att den skall ta bort .php filändelsen.
Min Nginx config fil ser ut såhär:
server {
listen 51001; # listen also for IPv4 traffic on "regular" IPv4 sockets
server_name kaka;
access_log /var/log/nginx/$host.access.log;
error_log /var/log/nginx/error.log;
root /var/www/kaka;
index index.php index.html;
## Block bad bots
if ($http_user_agent ~* (HTTrack|HTMLParser|libcurl|discobot|Exabot|Casper|kmccrew|plaNETWORK|RPT-HTTPClient)) {
return 444;
}
## Block certain Referers (case insensitive)
if ($http_referer ~* (sex|vigra|viagra) ) {
return 444;
}
## Deny dot files:
location ~ /\. {
deny all;
}
## Favicon Not Found
location = /favicon.ico {
access_log off;
log_not_found off;
}
## Robots.txt Not Found
location = /robots.txt {
access_log off;
log_not_found off;
}
location / {
try_files $uri $uri/ index.php;
rewrite ^(.+)/ /$1.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
### NginX Status
location /nginx_status {
stub_status on;
access_log off;
}
### FPM Status
location ~ ^/(status|ping)$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
access_log off;
}
}
Edit: Ändrar jag om Location / till denna neranför så fungerar www.example.com/about/ men däremot fungerar absolut inga bilder på servern alls av någon skum anledning
location / {
try_files $uri $uri/ index.php;
rewrite ^(.+)/ $1.php;
}
Några förslag?
Hur kan syltkakor överleva i det vilda utan ögon?