thinkphp nginx php-fpm url rewrite 导致 404 错误
## thinkphp nginx php-fpm url rewrite 导致 404 错误
之前thinkphp的系统部署在apache上,考虑到在并发性能nginx比apache强悍得多,所以在centos上以 nginx+php-fpm模式重新部署了thinkphp系统,结果发现诸如
<pre>/index.php/home/user/verify</pre>
此类的url nginx会报404错误,但是改成
<pre>/index.php?s=/home/user/verify</pre>
之后却能够访问,这说明前一种url nginx不支持,那为啥会不支持呢?要解决这个问题首先要明白thinkPHP的几种url模式。
### thinkPHP URL模式
#### 1. pathinfo 模式
<pre>/index.php/home/user/verify</pre>
*这种url格式,需要服务器支持pathinfo才行*
#### 2. rewrite 模式
<pre>/?s=/home/user/verify</pre>
*去掉index.php的伪静态模式*
#### 3. 兼容模式
普通的模式加s=/参数/或者m=model&a=action
### thinkPHP URL模式配置
在文件 /Application/Common/conf.php 中修改 URL_MODEL 的值
<pre>'URL_MODEL' => 3 </pre>
### nginx pathinfo模式配置
*nginx默认是不支持pathinfo模式的,需要手动添加rewrite规则来支持*
#### 1. 打开/nginx/conf/vhost目录下的站点配置文件。
#### 2. 在server节点中增加 如下location规则:
<pre class="lang:ini decode:true " >
#以index.php开头的uri
location ~ ^/index.php(.*)
{
#如果文件或者路径不存在
if (!-e $request_filename)
{
#将pathinfo模式的uri重写成普通模式
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
break;
}
}
</pre>
#### 3. 重新载入nginx配置信息
<pre class="lang:sh decode:true">
service nginx reload
</pre>
## Done !
thinkphp nginx php-fpm url rewrite 导致 404 错误的更多相关文章
- Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式
下面介绍如何使Nginx支持ThinkPHP的Pathinfo和URL Rewrite模式. 1.ThinkPHP给出了ThinkPHP的官方解决方案,如下: 打开Nginx的配置文件 /etc/ng ...
- Spring MVC的Rest URL 被错误解析成jsp, 导致404错误(XML方式下@Controller和@RestController需要配置<mvc:annotation-driving/>)
问题: 最近在原有MVC的WEB应用中添加一个REST服务,结果始终报404错误.把 Spring debug 日志打开,发现处理REST请求的Controller已经正确进入 [org.spring ...
- url rewrite导致的500.19 0x8007000d
https://stackoverflow.com/questions/13532447/http-error-500-19-iis-7-5-error-0x8007000d It seems you ...
- Vue实现远程获取路由与页面刷新导致404错误的解决
一.背景 先简单介绍一下现在项目情况:前后端分离,后端服务是Java写的,前端是Vue+ElementUI. 最近的一个需求是:通过后端Api去获取前端路由表,原因是每个登录角色对应的前端路由表可能是 ...
- [转]nginx下的url rewrite
转:http://zhengdl126.iteye.com/blog/698206 if (!-e $request_filename){rewrite "^/index\.html&quo ...
- centOS7.4 thinkPHP nginx 支持pathinfo和rewrite
server { listen 80; server_name www.demo.com mayifanx.com; root /data/www/demo; index index.php inde ...
- Django学习笔记第七篇--实战练习三--关于更有层级的url请求、404错误以及其他响应函数
一.关于更有层级的URL: 可以实现每一个APP一个子URL目录,例如app1的所有操作都在http://www.localhost1.com:5443/app1/xxxx 在工程主文件夹下的工程同名 ...
- nginx配置之禁止访问和404错误功能配置
禁止访问功能配置 nginx.conf中的http{}中的server{}的location ..{}中: location / { #拒绝访问,192.168.16.0网段的同学都无法访问 /24是 ...
- Linux下使用Nginx代理访问json文件报404错误
在网上看了很多,都说是IIS的问题,关键是使用servlet就可以正常访问,使用Nginx就不行,最后发现是其他问题,解决方案如下: 1.确认配置的路径是否正确,Nginx代理的路径和你访问的路径. ...
随机推荐
- C#动态webservice调用接口 (JAVA,C#)
C#动态webservice调用接口 using System; using System.Collections; using System.IO; using System.Net; using ...
- C++ CTime COleTime的一些操作技巧
strCString="2003-10-27 6:24:37"; //CString--->COleDateTime COleVariant vtime(strCString ...
- 微信调试、API、AJAX的调试 SocketLog
SocketLog适合Ajax调试和API调试, 举一个常见的场景,用SocketLog来做微信调试, 我们在做微信API开发的时候,如果API有bug,微信只提示"改公众账号暂时无法提供服 ...
- 使用Dapper读取Oracle多个结果集
Dapper对SQL Server支持很好,但对于Oracle有些用法不一样,需要自己进行特殊处理. 1.首先要自定义一个Oracle参数类 public class OracleDynamicPar ...
- http://blog.csdn.net/krislight/article/details/9391455
http://blog.csdn.net/krislight/article/details/9391455
- *按类的某一字段排序(Lv)
给定一个student类,类中有两个属性ID,Score.对一组student类对象排序,写出方法.
- HBase Shell操作
Hbase 是一个分布式的.面向列的开源数据库,其实现是建立在google 的bigTable 理论之上,并基于hadoop HDFS文件系统. Hbase不同于一般的关系型数据库(RDBMS ...
- 在virtualbox(win7)下使用USB摄像头
解决方法: 去https://www.virtualbox.org/wiki/Downloads下载VirtualBox 4.3.8 Oracle VM VirtualBox Extension Pa ...
- Java值传递以及引用的传递、数组的传递!!
转(http://blog.csdn.net/niuniu20008/article/details/2953785) 许多编程语言都有2种方法将参数传递给方法------按值传递和按引用传递. 与其 ...
- Tableau 地图无法识别怎么办
Tableau地图是一个很优秀的工具,可以选择城市或者省份作为单位来显示地图. 前几天做了一个省份的感觉很好,今天用城市做单位居然有些城市识别不了,其中包括贵阳和宿迁. 换了拼音之后贵阳能够识别了 ...