手头维护的一个论坛上了个新系统是用 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;
}
存档以留给后人。
1
Kokororin 2015 年 8 月 3 日
location / {
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } 不需要PATHINFO |
7
realpg PRO 好评收藏。
其实这是个通用的方案了,可以解决很多框架的路由问题。只要支持pathinfo模式的 如果在强化一下,fastcgi解析从*.php换成index.php,然后排除一个static静态目录其他的强制重写,就更完美了 |
8
jarlyyn 2015 年 8 月 3 日
框架没入口么……
这不是上传任何一个php都能运行了么? |