I've a small Codeigniter project and passing uri (localhost/project/index.php/Cfoo/funct/param
) doesn't work (404). The php-code is OK, because with lighttpd works.
My nginx
config:
user www www;
worker_processes 1;
worker_priority 15;
pid /var/run/nginx.pid;
events {
worker_connections 512;
accept_mutex on;
use kqueue;
}
http {
include conf.d/options;
include mime.types;
default_type application/octet-stream;
server {
server_name localhost;
index index.php index.html index.htm ;
add_header Cache-Control "public";
add_header X-Frame-Options "DENY";
limit_req zone=gulag burst=200 nodelay;
expires max;
listen 80;
root /usr/local/www;
location ~ ^/~([^/]+)/(.+\.php)$ {
if (!-f /home/$1/public_html/$2) {
rewrite ^ 404;
}
alias /home/$1/public_html/$2;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/public_html$2;
index index.html index.htm index.php;
autoindex on;
}
location /adminer {
index adminer/index.php;
}
location / {
try_files $uri $uri/ /index.php;
}
index index.php index.html index.htm ;
location ~ \.php$ { include conf.d/php-fpm; }
location = /favicon.ico { return 204; }
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ { deny all; }
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
}
EDIT A server section:
server {
server_name orarend;
root /home/zsolt/public_html/orarend_oo/;
index index.php;
add_header Cache-Control "public";
add_header X-Frame-Options "DENY";
limit_req zone=gulag burst=200 nodelay;
expires max;
location / {
try_files $uri $uri/ /index.php$request_uri$is_args$query_string;
autoindex on;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
location ~ \.php$ { include conf.d/php-fpm; }
}