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 index.php;
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_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include fastcgi.conf;
}

#nginx rewrite配置:

location / {
root html;
index index.html index.htm;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}

如果你的thinkphp安装在二级目录下则rewrite配置如下:

#yourdomain是所在的目录名称

location /yourdomain/ {
if (!-e $request_filename){
rewrite ^/yourdomain/(.*)$ /yourdomain/index.php?s=$1 last;
}
}

时间: 2024-10-21 23:08:37

Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持的相关文章

TP3.2 Nginx下配置ThinkPhp多入口访问

thinkphp多入口配置后,入口index.php指向应用目录=>app,入口admin.php指向后台管理目录=>admin在nginx下设置伪静态(在nginx的配置文件中): #ThinkPHP REWRITE支持if (!-e $request_filename) {rewrite ^/(.*)$ /index.php?s=$1 last;} 配置后,www.abc.com/index.php可以正常访问,www.adc.com/admin.php访问文件不存在错误! 解决方案:一个

Nginx下配置ThinkPhp多入口访问

比如在一个项目中有前台与后台两个模块,需要使用不同的入口文件.同时希望前台使用默认的index.php的入口. 关键的配置如下: if (!-e $request_filename) {           rewrite /plugins.php(.*)$ /plugins.php?s=/$1 last;           rewrite /admin.php(.*)$ /admin.php?s=/$1 last;               rewrite  ^(.*)$  /index.

Ubuntu下配置ThinkPHP隐藏index.php

http://doc.thinkphp.cn/manual/url_rewrite.html 以上连接为框架手册提供的步骤,而Ubuntu下apache环境与windows及其它Linux有一定区别 1.开启mod_rewrite.so模块 使用sudo a2enmod,可配置模块管理,再输入rewrite,则开启了mod_rewrite.so模块. 2.AllowOverride 改为All sudo vim /etc/apache2/apache2.conf,开启找到AllowOverrid

Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持

打开Nginx的配置文件 /usr/local/nginx/conf/nginx.conf 一般是在这个路径,根据你的安装路径可能有所变化.如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的vhost的配置文件.找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远): location ~ .*.(php|php5)?$ { #原有代码 } 修改成以下代码: #去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo #如果

nginx pathinfo及ThinkPHP的URL Rewrite模式支持

大家都知道thinkphp是一个广泛应用的php开发框架,所以在nginx中需要支持URL Rewrite和pathinfo 在我们的nginx配置文件中添加如下几行就可以了 附带文字部分: location ~ .php{ fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?\.php)

在Nginx上配置ThinkPHP项目

前段时间用Apache配合TP开发了一个小型网站,也算是我使用TP的第一次实战.我习惯使用pathinfo模式,本地运行一切正常,然而部署到服务器上时,由于对方使用的是Nginx,默认是不支持ThinkPHP的pathinfo模式,所以导致路径错误,出现了页面循环跳转的问题,于是就把nginx下载下来在本地亲自测试. 其实,要解决nginx不支持pathinfo的问题,有两个解决思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo.为了使问题简单化,我选择

在Apache服务器中配置ThinkPHP伪静态URL

ThinkPHP 作为国内最流行的一个PHP框架,由于她开发应用的便捷,便吸引越来越多的开发者开始使用她来做项目的底层架构.像我PHP基础并不是很好,也可以使用她来完成一个像模像样的项目. 下面便分享一些使用ThinkPHP需要了解的东西. 去掉 URL 中的 index.php ThinkPHP是单一入口的,默认的 URL 不是很友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache 里面的 .htaccess 文件,更是可以定制出人性化的更利于 SEO 的

nginx下配置虚拟主机的三种方法

nginx下,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机--应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机--应用:公司内部网站,外部网站的管理后台 3.基于ip的虚拟主机,几乎不用. 基于域名配置虚拟主机步骤: 需要建立/data/www /data/bbs目录,windows本地hosts添加虚拟机ip地址对应的域名解析:对应域名网站目录下新增index.html文件:  nginx.conf配置文件新增如下代码: server {

nginx下配置Yii2 rewrite、pathinfo等

环境说明: 我试用的lnmp安装包安装的nginx,nginx版本是1.14.1 server { listen 80; server_name www.baidu.com; #access_log /data/wwwlogs/access_nginx.log combined; root /data/wwwroot/wechatadmin/backend/web; #root /data/wwwroot/game; index index.html index.htm index.php; #