nginx rewrite伪静态后产生的错误链接

删除回忆录丶 提交于 2021-01-22 09:42:38

###背景 网站采用PHP做为后端开发语言,采用Thinkphp作为核心开发框架。

###问题

//一般的URL生成方式为
U('xxx/xxx',[a=>b]);

//目前网站中存在这种写法
U('xxx/xxx').'&a=b';

/*
上面不规范写法在伪静态前与伪静态后生成的URL对比
伪静态前:/index.php?mod=xxx&act=xxx&a=b   可以正常访问
伪静态后:/xxx/xxx.html&a=b    404
*/

如果去花时间修复这种不规范的写法,不仅费时费力,而且后期也难免出现这种不规范的写法。

所以考虑使用nginx rewrite模块重写为正确的URL

###解决方法

#为第一次出现伪静态后缀的URL添加?
rewrite ^(.*?)\.(html|php)[^\?](.*)$ $1.$2?$3 last;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!