ThinkPHP3.2.3 Nginx 下 URL_MODEL 的配置

ThinkPHP3.2.3 的 URL_MODEL 包括普通模式(0)、PATHINFO 模式(1)、REWRITE 模式(2)、兼容模式(3)等 4 种 URL 模式。在 Apache 下只要在配置文件 config.php 中配置 URL_MODEL 配合 .htaccess 就可以很容易地支持 REWRITE 模式。

在 Nginx 下设置项目的 URL 模式可以参考 老朱亲自写的,最完美ThinkPHP Nginx 配置文件,支持以上 4 种 URL 模式。

我测试的环境是 CentOS 6.6 + LNMP 1.2 (Nginx 1.8.0,MySQL5.6.23,PHP 5.6.9)+ ThinkPHP 3.2.3

编辑 nginx.conf 文件:

[[email protected] conf]# vim nginx.conf

在项目的 Server 段中加入:

    location / {
        try_files $uri @rewrite;
    }
    location @rewrite {
        set $static 0;
        if  ($uri ~ \.(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css\.map|min\.map)$) {
            set $static 1;
        }
        if ($static = 0) {
            rewrite ^/(.*)$ /index.php?s=/$1;
        }
    }
    location ~ /Uploads/.*\.php$ {
        deny all;
    }
    location ~ \.php/ {
       if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
       fastcgi_pass 127.0.0.1:9000;
       include fastcgi_params;
       fastcgi_param SCRIPT_NAME     $1;
       fastcgi_param PATH_INFO       $2;
       fastcgi_param SCRIPT_FILENAME $document_root$1;
    }
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.ht {
        deny  all;
    }

项目完整的 Server 段:

server
{
        listen 80;
        server_name www.tpblog.com;
        index index.html index.htm index.php;
        root  html/www.tpblog.com;

        #error_page   404   /404.html;
        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        #rewrite
        location / {
                try_files $uri @rewrite;
        }

        location @rewrite {
                set $static 0;
                if  ($uri ~ \.(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css\.map|min\.map)$) {
                        set $static 1;
                }
                if ($static = 0) {
                        rewrite ^/(.*)$ /index.php?s=/$1;
                }
        }
        location ~ /Uploads/.*\.php$ {
                deny all;
        }
        location ~ \.php/ {
                if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
                fastcgi_pass 127.0.0.1:9000;
                include fastcgi_params;
                fastcgi_param SCRIPT_NAME     $1;
                fastcgi_param PATH_INFO       $2;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
        }
        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
        location ~ /\.ht {
                deny  all;
        }
        #rewrite结束

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }
                access_log  /home/wwwlogs/access_tpblog.log  access;

}

参考:老朱亲自写的,最完美ThinkPHP Nginx 配置文件

时间: 2024-10-11 06:39:24

ThinkPHP3.2.3 Nginx 下 URL_MODEL 的配置的相关文章

nginx下修改svn配置

最近公司的SVN服务器地址做了变更,而我用的操作系统是Ubuntu操作系统,我也不想把以前下载的代码重新进行修改,我想通过修改svn地址,应该可以,终于在网上通过查找资料,找到了解决的方法: 进行你所工作的svn映射到本地的目录中.在终端下运行$svn switch --relocate http://oldPath http://newpath.系统提示输入用户名,密码.重新输入后,即可完成svn地址的变化. nginx下修改svn配置

Yii框架在Nginx下的rewrite配置(伪静态配置)

在nginx.conf的server 段添加类似如下代码: location / {       if (!-e $request_filename){           rewrite ^/(.*) /index.php last;       }   }

【Nginx】LNMP环境下的后续配置

本文为点点点细雨原创,谢绝转载 前言 完成了基本的配置后,我们可以直接在nginx上运行php环境了,那么,接下来要做的就是后续的一些操作 配置网卡 由于现在的上网方式从分配固定的ip变成了自动分配,所以需要重新修改网卡配置 查看虚拟机配置,虚拟机采用的是Mac上的这个 然后修改网卡配置文件,改成对应的mac地址以及dhcp [[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth1 HWADDR

nginx下yii伪静态处理

Yii在Nginx下的rewrite配置 今天配置nginx后首页显示正常,点击链接就报404错误,只是知道在apache下只要开启重定向模块,再nginx下加上如下配置即可: 1. Nginx配置 在nginx.conf的server {段添加类似如下代码: Nginx.conf代码: location / { if (!-e $request_filename){ rewrite ^/(.*) /index.php last; } } 2. 在Yii的protected/conf/main.

nginx下根据指定路由重定向

前言: 最近在搭建vue后台,后端接口是PHP写的,线上构建好之后,需要请求其他域名下的接口,开发环境已经使用proxytable解决了接口问题,为了开发和生成的代码一致, 编译后的代码,放在nginx下运行,配置了路由重写. 项目说明: 前端页面域名 front.me,后端接口backend.me,前端访问后端接口都是请求front.me/api/controller/action,nginx配置了重定向,当检测到路由里面/api/是会重定向到 backend.me/controller/ac

Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持

前面有关于lnmp环境的搭建,在此就不在赘述.下面就简述thinkPHP如何在nginx下开启url_rewrite和pathinfo模式支持 主要有两个步骤: 一.更改php.ini将;cgi.fix_pathinfo=0  改为cgi.fix_pathinfo=1 二.更改nginx配置文件中php的location设置pathinfo模式: location ~ \.php { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index in

烂泥:Windows下安装与配置Nginx web服务器

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关nginx下的搭建与配置. 注意本次实验使用的windows server 2003 64bit,而且还是在虚拟机中.IP地址为192.168.1.221 首先去官网下载 nginx最新的的Windows版本,如下: http://nginx.org/en/download.html 下载到软件包后,解

ubuntu下nginx安装、基本配置及常用命令

1 安装: sudo apt-get install nginx 2 启动服务: sudo service nginx start 或者 sudo /etc/init.d/nginx start nginx默认设置了80端口的转发,启动后可以在浏览器访问http://localhost  检查是否启动成功. 3 配置 默认配置文件:/etc/nginx/nginx.conf 该配置文件中有两行,是用来加载外部的配置文件,如下: include /etc/nginx/conf.d/*.conf;

CodeIgniter框架——nginx下的配置

odeigniter(CI)是一个轻量型的PHP优秀框架,但是它是在apache服务器下开发的,在nginx下需要特别的配置才可以使用. 对nginx的配置如下: 1 server { 2 listen 80 default_server; 3 listen [::]:80 default_server ipv6only=on; 4 5 root /home/mqx/openflow/openflow/openflow/web; 6 index index.html index.htm inde