我有一个小的Codeigniter项目,传递uri(localhost/project/index.php/Cfoo/funct/param
)不起作用(404)。php代码是可以的,因为使用lighttpd是可行的。
我的nginx
配置:
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;
}
}
}
编辑服务器部分:
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; }
}
这会起作用,并且不需要将index.php
放在url 中
将User
替换为实际用户的家庭
server {
root /home/User/public_html/project;
location / {
try_files $uri $uri/ /index.php$request_uri$is_args$query_string;
}
}