讓nginx 的ssi支持include相對路徑


好久沒接觸nginx了,今天幫同事解決一個客戶的問題,順便記錄下;
version : nginx-1.6.2
問題描述:
客戶的files.shtml里面include一個網站的頭部文件( <!–# include file=”../../woqu.htm”–>),采用的是相對路徑,這樣的寫法在apache里面可以正常訪問,但是在nginx里面不能正常加載
日志上提示:
unsafe URI "../../woqu.html" was detected while sending response to client
解決方法:
修改源碼重新編譯nginx
vi src/http/modules/ngx_http_ssi_filter_module.c
注視掉下面這個判斷:
/*
if (ngx_http_parse_unsafe_uri(r, uri, &args, &flags) != NGX_OK) {
return NGX_HTTP_SSI_ERROR;
}
*/
然后安裝三部曲,reload一下就搞定了。
順帶說下,部分人在nginx里面為了安全會添加規則禁止訪問隱藏文件(點 .開頭),如:
location ~ (.*\.sh?$|/\.|.*\.log?$)
{
return 403;
}
然后就會跟我們上面改的起沖突,因為include ../../test.html 這樣的時候,其實也是正常請求這樣的一個URL,“..”也是點開頭,然后你就會看到一個403的頁面,好惡心。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM