一些用戶的網(wǎng)站使用nginx,在添加了反向代碼之后,沒有效,感覺和不添加的時(shí)候一樣。
經(jīng)過我工作室頂尖技術(shù)人員的排查,發(fā)現(xiàn)問題原因是rewrite的優(yōu)先級高于反向代理
并且某些網(wǎng)站程序的偽靜態(tài)規(guī)則,直接攔截了所有匹配導(dǎo)致。如 thinkphp,zblog,小旋風(fēng)站群 等!
解決辦法就是,給偽靜態(tài)規(guī)則加上一個(gè)條件,把反向目錄排除。
以下以thinkphp的偽靜態(tài)規(guī)則做舉例,thinkphp的默認(rèn)偽靜態(tài)規(guī)則如下:
------------------------------------------------------
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}------------------------------------------------------
注意紅色部分,把 ^(.*) 改成 ^/(?!mulu888)(.*) ,其中 mulu888改成自己的反代目錄,如有多個(gè)用|分開: ^/(?!mulu888|mulu999)(.*)
修改后的代碼就變成以下:
------------------------------------------------------
if (!-e $request_filename) {
rewrite ^/(?!mulu888)(.*)$ /index.php?s=$1 last;
break;
}------------------------------------------------------
