最近有客户的网站使用nginx环境配置,在添加了反向代理代码之后没有生效。一般这种问题发生的主要原因是rewrite伪静态规则优先级高于反向代理,且某些网站程序的伪静态规则直接拦截了所有匹配才导致代码无法生效。(Ps:如 thinkphp,zblog,wordpress 等主流建站程序.)
我们只需要给伪静态规则加上一个判断条件,把反向代理目录排除就可以解决了。以下是举例:
我们用thinkphp的伪静态规则做示例。thinkphp的默认rewrite伪静态规则如下:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
注意^(.)部分,把 ^(.) 改成 ^/(?!yeadao)(.) ,其中 yeadao改成自己的反代目录,如有多个用|分开: ^/(?!yeadao|app)(.)
修改后的代码如下:
if (!-e $request_filename) {
rewrite ^/(?!yeadao)(.*)$ /index.php?s=$1 last;
break;
}
更多黑帽SEO技术教程请关注夜岛SEO技术博客(www.yeadao.com) ,一个专注于黑帽SEO快速排名技术研究与学习教程分享的网站!
本文由夜岛黑帽SEO整理发布,欢迎转载:http://www.mctpro.cn/jishu/40.html