nginx默认不支持pathinfo,访问param.php/config形式的url会被提示找不到页面。
解决:
一、修改/usr/local/nginx/conf/fastcgi.conf
#添加以下行 #############################ADD START################################ set $path_info ""; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { set $real_script_name $1; set $path_info $2; } fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; ##############################ADD END################################# #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;//添加注释 fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; #fastcgi_param SCRIPT_NAME $fastcgi_script_name;//添加注释 fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
二、修改/usr/local/nginx/conf/nginx.conf
server { listen 80; server_name test.com; location / { root /data/webroot/test; index index.php; } location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; root /data/webroot/test; include fastcgi.conf; } }