[存档] ThinkPHP 框架在 Nginx 下的伪静态问题
手头维护的一个论坛上了个新系统是用 ThinkPHP 写的。装上以后发现伪静态不能用。
(你给的是 .htaccess 啊当然不能用了
放狗搜了一下,发现几乎都是先用 Rewrite 重写成 index.php/XXXYYY,然后再在 PHP 段里把后缀拆出来扔进 PATH_INFO 里,不能更麻烦。
想了一下,写了以下配置代码,测试一次通过。
location ~* \.php$ { fastcgi_pass unix:/var/run/php5.sock; include fastcgi.conf; + fastcgi_param PATH_INFO $request_uri; }
存档以留给后人。
----------------------- 以下是精选回复-----------------------
答:location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
不需要PATHINFO
答:好评收藏。
其实这是个通用的方案了,可以解决很多框架的路由问题。只要支持pathinfo模式的
如果在强化一下,fastcgi解析从*.php换成index.php,然后排除一个static静态目录其他的强制重写,就更完美了
答:框架没入口么……
这不是上传任何一个php都能运行了么?
0条评论