nginx rewrite伪静态后产生的错误链接
###背景 网站采用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; 来源: oschina 链接: https://my.oschina.net/u/135537/blog/510761