以前没有在乎一直都是在Apache下部署,换成Nginx折腾了半天。终于搞定。php
server {
listen 80;
server_name **
location / {
root /www/;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php { #去掉后面的$
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$; #增长这一句
fastcgi_param PATH_INFO $fastcgi_path_info; #还有这一句
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
Mac下修改完上述以后就能够正常访问了 html
查询资料说须要修改php.ini 配置, 中将 cgi.fix_pathinfo=0 改成1 可是Mac下我并无去修改就搞定了nginx
nginx 1.6.2 和上面的稍有不一样。code
server {
listen 80;
server_name meiman.com ;
root "E:/www/ymems";
location / {
index index.html index.htm index.php;
#autoindex on;
##增长下面的内容
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
今天换了个环境,发现用上面的方法无论用。在网上找了试试这个管用。server
另外也许有的不在根目录,参考下面的。htm
location / {
if (!-e $request_filename) {
###一级目录下
rewrite ^/(.*)$ /index.php/$1 last;
###域名下的二级目录
#rewrite ^/目录名/(.*)$ /目录名/index.php/$1 last;
}
}