目前接手了一个遗留项目,所使用的框架是thinkphp3,原来采用的是多入口的模式:
前台使用api.php ,后台入口是 manage.php ,
所使用的环境是php5.6是正常的,但是我切换到php7.3以后(有部分类库依赖php7.2.9+),后台的伪静态总是有问题。
期望前台不显示api.php,后台通过${host}/manage.php/xxx来访问。
所使用的代码如下:
location / {
if (!-e $request_filename) {
rewrite ^/manage.php?(.*)$ /manage.php?s=$1 last;
rewrite ^(.*)$ /api.php?s=/$1 last;
break;
}
}
不知道哪里出了问题。
有一个测试很奇怪,我把第一条中的manage.php改成manage.xyz什么的都可以,好像就是不能出现.php
@老虎会游泳
红米Note4超高配版(银色)
打开nginx的rewrite日志
http://www.voidcn.com/article/p-tvgcajmf-ck.html
PHP中:
然后注意观察
$_SERVER
一节,看看不同版本在rewrite之后有什么区别。最后,你并没有展示你所遇到的现象,只说你有问题,这就需要我们猜测了。那我可以猜你得到了500错误,原因是PHP代码版本不兼容。这样的话,你应该打开PHP的错误日志然后去修复不兼容代码。