nginx添加反向代理代码不生效-与原rewrite伪静态规则冲突了怎么办?

如果你的网站使用nginx环境配置,在添加了反向代理代码之后不生效。
仔细研究发现发现问题原因是rewrite伪静态规则优先级高于反向代理并且某些网站程序的伪静态规则,直接拦截了所有匹配导致。如 thinkphp,zblog,wordpress 等主流建站程序!
解决办法就是,给伪静态规则加上一个判断条件,把反向代理目录排除。
以下以thinkphp的伪静态规则做举例,thinkphp的默认rewrite伪静态规则如下:

if (!-e $request_filename) {
rewrite  ^(.*)$  /index.php?s=$1  last;
break;
}

注意^(.)部分,把 ^(.) 改成 ^/(?!yanyu)(.) ,其中 yanyu改成自己的反代目录,如有多个用|分开: ^/(?!yanyu|app)(.)
修改后的代码就变成以下:

 if (!-e $request_filename) {
 rewrite  ^/(?!yanyu)(.*)$  /index.php?s=$1  last;
 break;
 }

以上就是针对nginx添加反向代理代码不生效-与原rewrite伪静态规则冲突了怎么办的解决方式。

原创作品来自烟雨唯一联系QQ 81047380,QID:yanyuseo 微信号:yanyuseo(以QQ为主,微信不常上) 未经允许,不得转载。:烟雨黑帽SEO » nginx添加反向代理代码不生效-与原rewrite伪静态规则冲突了怎么办?

赞 (0) 联系我获取程序/下载程序

唯一QQ:81047380 QID:yanyuseo 微信号:yanyuseo

以QQ为主

微信不常上

QQ咨询QQ号 微信咨询微信号 关注抖音抖音号 𐆄关注公众号微信公众号