


thinkphp nginx php-fpm url rewrite 导致 404 错误,thinkphpnginx_PHP教程
Jul 12, 2016 am 09:05 AMthinkphp nginx php-fpm url rewrite 导致 404 错误,thinkphpnginx
thinkphp nginx php-fpm url rewrite 导致 404 错误
之前thinkphp的系统部署在apache上,考虑到在并发性能nginx比apache强悍得多,所以在centos上以 nginx+php-fpm模式重新部署了thinkphp系统,结果发现诸如
1 | /index.php/home/user/verify |
此类的url nginx会报404错误,但是改成
1 | /index.php?s=/home/user/verify |
之后却能够访问,这说明前一种url nginx不支持,那为啥会不支持呢?要解决这个问题首先要明白thinkPHP的几种url模式。
thinkPHP URL模式
1. pathinfo 模式
1 | /index.php/home/user/verify |
这种url格式,需要服务器支持pathinfo才行
2. rewrite 模式
1 | /?s=/home/user/verify |
去掉index.php的伪静态模式
3. 兼容模式
普通的模式加s=/参数/或者m=model&a=action
thinkPHP URL模式配置
在文件 /Application/Common/conf.php 中修改 URL_MODEL 的值
1 | 'URL_MODEL' => 3 |
nginx pathinfo模式配置
nginx默认是不支持pathinfo模式的,需要手动添加rewrite规则来支持
1. 打开/nginx/conf/vhost目录下的站点配置文件。
2. 在server节点中增加 如下location规则:
1 2 3 4 5 6 7 8 9 10 11 | #以index.php开头的uri location ~ ^/index.php(.*) { #如果文件或者路径不存在 if (!-e $request_filename) { #将pathinfo模式的uri重写成普通模式 rewrite ^/index.php(.*)$ /index.php?s=$1 last; break; } } |
3. 重新载入nginx配置信息
1 | service nginx reload |
Done !

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment autoriser l'accès au réseau externe au serveur Tomcat

Solution à l'erreur d'invite de mise à jour Windows 0x8024401c

Il existe plusieurs versions de thinkphp

Quelles sont les commandes de démarrage et d'arrêt de nginx ?

Lequel est le meilleur, Laravel ou thinkphp ?
