一些用户的网站使用nginx,在添加了反向代码之后,没有效,感觉和不添加的时候一样。
经过我工作室顶尖技术人员的排查,发现问题原因是rewrite的优先级高于反向代理
并且某些网站程序的伪静态规则,直接拦截了所有匹配导致。如 thinkphp,zblog,小旋风站群 等!
解决办法就是,给伪静态规则加上一个条件,把反向目录排除。
以下以thinkphp的伪静态规则做举例,thinkphp的默认伪静态规则如下:
------------------------------------------------------
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }
------------------------------------------------------
注意红色部分,把 ^(.*) 改成 ^/(?!mulu888)(.*) ,其中 mulu888改成自己的反代目录,如有多个用|分开: ^/(?!mulu888|mulu999)(.*)
修改后的代码就变成以下:
------------------------------------------------------
if (!-e $request_filename) { rewrite ^/(?!mulu888)(.*)$ /index.php?s=$1 last; break; }
------------------------------------------------------
版权声明:本文为 “黑帽百科” 原创文章,转载请附上原文出处链接及本声明;
工作时间:10:00~22:00
客服电话
电子邮件
hack66666@foxamil.com
扫码二维码
获取最新动态