使Nginx支持ThinkPHP框架

简介:

一、nginx不支持thinkphp的原因


ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可。在Apache下只需要开启mod_rewrite模块就可以正常访问了,但是Nginx中默认是不支持PATHINFO的,所以nginx默认情况下是不支持thinkphp的。不过我们可以通过修改nginx的配置文件来让其支持thinkphp。


二、让nginx支持pathinfo,支持thinkphp


1、打开Nginx的配置文件,注释以下红色字体内容:


http {

  include       mime.types;    #此项不加则无法加载CSS、js页面样式

  server {

        listen       80;

        server_name  localhost;

        root html;

    location / {

          index  index.php index.html index.htm;

#       location ~ .*\.(php|php5)?$

#                    {

#                            fastcgi_pass 127.0.0.1:9000;

#                            fastcgi_index index.php;

#                            include fastcgi.conf;

#                    }

    location /status {

                stub_status on;

                #access_log   off;

                }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                {

                        expires      30d;

                }

    location ~ .*\.(js|css)?$

                {

                        expires      12h;

                }   

        #access_log off;

      }

include  vhost/*.conf;

}


2、对注释的内容进行重写,绿色字体部分!


http {

  include       mime.types;    #此项不加则无法加载CSS、js页面样式

  server {

        listen       80;

        server_name  localhost;

        root html;

    location / {

           index  index.php index.html index.htm;

        #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则

        if (!-e $request_filename)

          {

             #地址作为将参数rewrite到index.php上。

             rewrite ^/(.*)$ /index.php/$1;

             #若是子目录则使用下面这句,将subdir改成目录名称即可。

             #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;

             }

        }

        #proxy the php scripts to php-fpm

    location ~ \.php {

        include fastcgi.conf;

        ##pathinfo支持start

        #定义变量 $path_info ,用于存放pathinfo信息

        set $path_info "";

        #定义变量 $real_script_name,用于存放真实地址

        set $real_script_name $fastcgi_script_name;

        #如果地址与引号内的正则表达式匹配

        if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {

            #将文件地址赋值给变量 $real_script_name

            set $real_script_name $1;

            #将文件地址后的参数赋值给变量 $path_info

            set $path_info $2;

              }

        #配置fastcgi的一些参数

        fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

        fastcgi_param SCRIPT_NAME $real_script_name;

        fastcgi_param PATH_INFO $path_info;

        ###pathinfo支持end

        fastcgi_intercept_errors on;

        fastcgi_pass   127.0.0.1:9000;

           }

   location /status {

                stub_status on;

                #access_log   off;

                }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                {

                        expires      30d;

                }

    location ~ .*\.(js|css)?$

                {

                        expires      12h;

                }   

        #access_log off;

      }

include  vhost/*.conf;

}

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1738226如需转载请自行联系原作者


qianghong000

相关文章
|
Web App开发 Rust 应用服务中间件
在Nginx当中支持QUIC协议
Quick UDP Internet Connection(QUIC)协议是Google公司提出的基于UDP的高效可靠协议。有关协议的主要内容就不在本文过多描述了,本文主要是来讲一下,在Nginx当中如何去支持QUIC协议。 由于个人水平有限,如果哪里写的不对的地方,还请各位大佬们指正。
1564 0
在Nginx当中支持QUIC协议
|
JavaScript 应用服务中间件 nginx
Nginx - 同一域名配置多个 Vue 项目(支持Webpack、Uniapp)
Nginx - 同一域名配置多个 Vue 项目(支持Webpack、Uniapp)
744 0
Nginx - 同一域名配置多个 Vue 项目(支持Webpack、Uniapp)
|
应用服务中间件 网络安全 nginx
Nginx配置WebSocket 【支持wss与ws连接】
Nginx配置WebSocket 【支持wss与ws连接】
4926 0
|
9月前
|
前端开发 JavaScript 小程序
Docker实战 | 第三篇:Docker安装Nginx,实现基于vue-element-admin框架构建的项目线上部署
Docker实战 | 第三篇:Docker安装Nginx,实现基于vue-element-admin框架构建的项目线上部署
|
前端开发 应用服务中间件 Linux
nginx支持一个端口访问多个前端项目(http以及https)
最近做项目结构优化,前端项目都是部署在nginx上,想实现同一个端口可以访问多个前端项目.
|
安全 前端开发 应用服务中间件
centos 下配置 nginx 支持 php
centos 下配置 nginx 支持 php
|
PHP
宝塔的nginx.在Thinkphp伪静态情况下配置图片裁剪
宝塔的nginx.在Thinkphp伪静态情况下配置图片裁剪
184 0
|
应用服务中间件 Linux Shell
06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本
NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本
195 0
06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本
|
应用服务中间件 Linux 网络安全
nginx安装配置ssl模块支持https访问
nginx安装配置ssl模块支持https访问
239 0
nginx安装配置ssl模块支持https访问
|
安全 Java 数据建模
Nginx如何支持HTTPS?手把手教会你每一步操作都贼简单
随着我们网站用户的增多,我们会逐渐意识到HTTPS加密的重要性。在不修改现有代码的情况下,要从HTTP升级到HTTPS,让Nginx支持HTTPS是个很好的选择。今天我们来讲下如何从Nginx入手,从HTTP升级到HTTPS,同时支持静态网站和SpringBoot应用,希望对大家有所帮助! 生成SSL自签名证书 虽然自签名证书浏览器认为并不是安全的,但是学习下SSL证书的生成还是很有必要的! 首先创建SSL证书私钥,期间需要输入两次用户名和密码,生成文件为blog.key;
403 0
Nginx如何支持HTTPS?手把手教会你每一步操作都贼简单