登录 立即注册

首页 > 绿虎论坛 > 建站 > 讨论/求助 (发帖)

标题: 请教一个nginx多入口伪静态的问题

作者: @Ta

时间: 2020-03-14发布,2020-03-14修改

点击: 8403

目前接手了一个遗留项目,所使用的框架是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超高配版(银色)


[隐藏样式|查看源码]


『回复列表(3|隐藏机器人聊天)』

1.

打开nginx的rewrite日志
http://www.voidcn.com/article/p-tvgcajmf-ck.html

PHP中:

phpinfo();
exit();

然后注意观察$_SERVER一节,看看不同版本在rewrite之后有什么区别。

最后,你并没有展示你所遇到的现象,只说你有问题,这就需要我们猜测了。那我可以猜你得到了500错误,原因是PHP代码版本不兼容。这样的话,你应该打开PHP的错误日志然后去修复不兼容代码。

(/@Ta/2020-03-14 16:46//)

2. @老虎会游泳,总是有些人新号注册上来就是广告,加一个用户注册24小时之内只可以回复,不可以发帖
(/@Ta/2020-03-14 17:46//)

3.

@老虎会游泳,本来想截图问题的表现,但是由于项目是线上项目,在紧张的调试中,就又给恢复原样了。

最后发现问题所在了,使用的是lnmp的配置,其中启用php73的配置文件中的php规则把 rewrite ^/manage.php?(.*)$ /manage.php?s=$1 last;给覆盖掉了,所以路径中带php的都不会起作用。。。
红米Note4超高配版(银色)

(/@Ta/2020-03-15 14:10//)

回复需要登录

11月5日 19:35 星期二

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1