php云购程序 linux服务器下,配置nginx,支持php的pathinfo路径模式配置

时间:2016-01-05 20:49:47  来源:  作者:

如果你用的是liunx的服务器,并且服务器的环境配置的是nginx的服务器环境,那么你需要进行这样的基础配置,

-----《--如果您用的是liunx的服务器,但是环境是apa或者是httpd,请忽略此贴--》-----

因为nginx的服务器环境默认是不支持pathinfo的,所以会导致您在安装后会出现所有或者是部分网页出现404错误,需要对服务器进行下相关的配置,以下是我找到的一个比较靠谱的网帖,您只需要按照这个网帖的下自己的nginx服务器完成基础的配置,就能解决这个问题了。


nginx模式默认是不支持pathinfo模式的,类似index.php/index形式的url会被提示找不到页面。下面的通过正则找出实际文件路径和pathinfo部分的方法,让nginx支持pathinfo。
本文基于安装lnmp一键安装包,添加虚拟主机情况下进行修改
如你要添加一个网站www.linuxeye.com支持pathinfo,配置文件nginx.conf不用任何改变(个人习惯),参考lnmp一键安装包
cat vhost/www.linuxeye.com.conf

server {listen  80;server_name     www.linuxeye.com;access_log  logs/www.linuxeye.com.log combined;root /home/wwwroot/www.linuxeye.com;error_page  404/404.html;index index.html index.htm index.php ;location /{        index  index.php;if(!-e $request_filename){        rewrite  ^/(.*)$  /index.php/$1  last;break;}}location ~ \.php {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fcgi_pathinfo.conf;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;}}

要点:
1.~ \.php 后面不能有$  以便能匹配所有 *.php/* 形式的url
2. 通过设置更改 SCRIPT_FILENAME

cat fcgi_pathinfo.conf

#fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#fastcgi_param  SCRIPT_NAME        $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  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-redirectfastcgi_param  REDIRECT_STATUS    200;


顶一下
返回首页
回首页
收藏
收藏

参与评论(条)

注: 网友评论仅供表达个人看法,并不表达本站同意其观点或证实其描述