Nginx配置pathinfo

Nginx默认不支持pathinfo格式的url,最近学习ThinkPHP的URL_MODEL时遇到了这个问题。Apache服务器下开启rewrite,将AllowOverride设置为All就ok了,但是Nginx却需要进一步配置,网上找了很多教程,大都是转载的比较多,试了好几个都没有成功。后来按照另一个教程进行配置,结果ok了。下面是配置过程。

1.Nginx.conf下配置如下

      server
  {
    listen 80;
    server_name test.com;
    index index.php;
    root D:/phpStudy/WWW/test;
     #这里是开启rewrite隐藏index.php
     location / {        
       if (!-e $request_filename) { # -e表示存在某个文件或目录
           rewrite  ^(.*)$  /index.php/$1  last; #last相当于apache中的[L],表示不再往下匹配
               break;
           }
    }
     #这里是pathinfo的配置
    location ~ \.php {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.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;
    }
  }

2.hosts文件里配置

127.0.0.1  test.com

ok,打开浏览器试下,http://test.com/Home/Index/index,欧拉!

时间: 2024-10-31 11:12:32

Nginx配置pathinfo的相关文章

Nginx配置PATHINFO隐藏index.php

1.网络来源:http://www.shouce.ren/post/view/id/1529 server {      listen       80;     default_type text/plain;     root /var/www/html;     index index.php index.htm index.html; #隐藏index.php     location / {           if (!-e $request_filename) {         

NGINX关于配置PATHINFO

最近在群里发现有很多小白不会配置pathinfo现贴出来配置代码照着配置就可以了 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 server { listen       80; server_name xxx.com root      /alidata1/wwwroot/xxx; index  index.html index.htm index.php; //这里是关键 location ~ \.php { fast

nginx中配置pathinfo模式示例

要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pathinfo不是nginx的功能,pathinfo是php的功能. php中有两个pathinfo,一个是环境变量$_SERVER['PATH_INFO']:另一个是pathinfo函数,pathinfo() 函数以数组的形式返回文件路径的信息;. nginx能做的只是对$_SERVER['PATH_INFO]值的设置. 下面我们举例说明比较直观.先说php中两种pathinfo的作用,

配置nginx支持pathinfo

服务器运行的nginx+php,centos的系统.因需新部署一个网站,需要配置nginx支持pathinfo功能.网上各种查资料,终于搞定. 首先查看php.ini文件,查找cgi.fix_pathinfo=0,如不是0,改为0.重启php程序. 然后修改nginx配置文件: location ~ \.php {                    ------(去掉php后面的$) fastcgi_pass   127.0.0.1:9000; fastcgi_index  index.ph

nginx 配置文件 PATHINFO重写规则

user  www www;worker_processes  2; #error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info; pid        logs/nginx.pid; events {    use epoll;    worker_connections  2048;} http {    include       mime.types;   

nginx支持pathinfo并且隐藏index.php

How To Set Nginx Support PATHINFO URL Model And Hide The /index.php/ 就像这样 The URL before setting like this: http://serverName/index.php?m=Home&c=Customer&a=getInformation&id=1 Now like this: http://serverName/Home/Customer/getInformation/id/1

nginx 配置rewrite 笔记

nginx 配置rewrite笔记: 通过下面的示例来说明一下,1. 先说说location : location 表示匹配传入的url地址,其中配置符有多种,各种情况的意义不一样: location ^~ /public/ { root /data/wwwroot/a.php.abc.cc; } location ^~ /public/ 表示匹配以 "/public/" 开头的url,匹配成功执行其中的内容,执行完毕后停止并退出. location / { root /data/ww

nginx 配置rewrite

先说自己的情况,目前富乔使用的是lnmp一键包,解决步骤如下: 1.打开/usr/local/nginx/conf/nginx.conf   文件,在server段中,access_log句子前加入以下代码 location /ck/cashier/ { if (!-e $request_filename){ rewrite ^/ck/cashier/(.*)$ /ck/cashier/index.php?s=/$1 last; } } 其中/ck/cashier/  为二级目录,可根据自己的项

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi