我的程序在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
laucie 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 就不存在这样的问题 |
8
dai3212347 2015-07-09 10:40:58 +08:00 1
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 1
78行左右改成这个。
|
10
a2521298 OP 实在是感谢dai3212347
问题已经好了,thinkphp居然有这种问题,我晕啊!!! |
11
realpg 2015-07-09 14:02:58 +08:00
thinkphp 用nginx的重写,url模式2 不需要修改框架文件
重写规则你没做好吧 |
12
realpg 2015-07-09 14:16:27 +08:00 1
@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 2015-07-09 15:12:01 +08:00
@a2521298 无所谓什么webserver,肯定是有重写功能,把重写配置好而不是去修改框架本身的东西。否则版本迭代,或者出了重大BUG需要紧急升级时候,怎么办
|
17
g8287694 2015-07-10 10:10:25 +08:00
和路由重写有关吧
|
18
zts1993 2015-07-10 13:25:01 +08:00
thinkbug
|