
我的程序在win环境下开发测试完成,一切都正常。
转到linux环境后
http://localhost/index.php?s=xxx
变成了
http://localhost/.php?=xxx
不是web和伪静态还有有代码替换掉了index问题,这个咋回事啊?
1 xuhaoyangx 2015-07-09 01:25:12 +08:00 环境配置文件不给来看看?? |
2 Magician 2015-07-09 02:18:58 +08:00 没有真像 上配置文件啊! |
3 cz208209 2015-07-09 08:27:17 +08:00 nignx? |
4 frozenshadow 2015-07-09 08:39:58 +08:00 如果说nginx的话,nginx对pathinfo支持的不是太好,经常有莫名其妙的错误,也可能是我对nginx的配置不熟~ |
5 lmaq 2015-07-09 09:00:55 +08:00 没遇到过... |
6 markmx 2015-07-09 09:35:50 +08:00 这么奇葩的问题。。第一次遇见! |
7 minongbang 2015-07-09 10:33:35 +08:00 thinkphp的rewrite需要你在你网站的nginx配置里面加rewrite 如果你用yii2 或者kohana 就不存在这样的问题 |
ThinkPHP的识别CGI有问题。 ThinkPHP.php文件 改成下代码 if(!defined('_PHP_FILE_')) { if(IS_CGI) { //CGI/FASTCGI模式下 //$_temp = explode('.php',$_SERVER['PHP_SELF']); //define('_PHP_FILE_', rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/')); define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'], '/')); }else { define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'],'/')); } } |
9 dai3212347 2015-07-09 10:41:39 +08:00 78行左右改成这个。 |
10 a2521298 OP 实在是感谢dai3212347 问题已经好了,thinkphp居然有这种问题,我晕啊!!! |
11 realpg PRO thinkphp 用nginx的重写,url模式2 不需要修改框架文件 重写规则你没做好吧 |
12 realpg PRO @a2521298 无需修改thinkphp的任何脚本 nginx的重写规则: if (!-e $request_filename){ rewrite ^/(.*)$ /index.php?s=/$1 last; } config.php: 'URL_MODEL' => '2', |
13 a2521298 OP @realpg 是@dai3212347 说的这个问题,已经好了,不知道是不是框架缺陷。 |
15 realpg PRO @a2521298 无所谓什么webserver,肯定是有重写功能,把重写配置好而不是去修改框架本身的东西。否则版本迭代,或者出了重大BUG需要紧急升级时候,怎么办 |
17 g8287694 2015-07-10 10:10:25 +08:00 和路由重写有关吧 |
18 zts1993 2015-07-10 13:25:01 +08:00 thinkbug |