Nginx下訪問原始碼.html檔案重定向到相對目錄下.php檔案
阿新 • • 發佈:2018-12-10
請求報錯404故障
故障描述:
LNMP環境下發布商城原始碼,通過web請求訪問.html檔案報404錯誤請求檔案不存在,在原始碼裡只存在.php檔案
例子圖:
程式預設訪問時根路徑下的這個.html檔案,但這個檔案型別在原始碼裡並不存,原始碼裡只有.php檔案型別。
當你手工將字尾名改成.php之後就可以正常顯示網頁內容;
經過排查是缺少偽靜態規則
#“/”一般匹配 “=”絕對匹配
location / {
# if判斷請求檔案是否存在,存在為真則不執行下面的重寫,不存在則為假執行下面重寫語句
if (!-e $request_filename) {
#將訪問/根目錄下的 .html 檔案重定向到相對路徑下的 .php 檔案,
rewrite ^/(.*)\.html$ /$1.php last;
}
}
註釋:
"last" 代表匹配成功後又從頭開始去匹配,當匹配不成功則跳到下一條
"break" 代表跳過這段重寫規則執行下一條重寫規則
"^" 代表正則表示式開始
"/(.*)\.html " 代表根目錄下所有 .html 檔案型別
"$" 代表一個正則表示式結束
"/" 代表根目錄
"$1" 代表呼叫第一個引數,也就是前一個正則表示式,或者說是"/(.*)\.html "這裡面的內容
".php" 重定向成這個型別的檔案
加入偽靜態規則之後重啟服務再去訪問:
故障解決!