url重寫是指通過配置conf文件,以讓網站的url中達到某種狀態時則定向/跳轉到某個規則,比如常見的偽靜態、301重定向、瀏覽器定向等
rewrite
語法
在配置文件的server
塊中寫,如:
server {
rewrite 規則 定向路徑 重寫類型;
}
規則:可以是字符串或者正則來表示想匹配的目標url定向路徑:表示匹配到規則后要定向的路徑,如果規則里有正則,則可以使用$index
來表示正則里的捕獲分組
重寫類型:
last :相當於Apache里德(L)標記,表示完成rewrite,瀏覽器地址欄URL地址不變
break;本條規則匹配完成后,終止匹配,不再匹配后面的規則,瀏覽器地址欄URL地址不變
redirect:返回302臨時重定向,瀏覽器地址會顯示跳轉后的URL地址
permanent:返回301永久重定向,瀏覽器地址欄會顯示跳轉后的URL地址
last:
重新將rewrite后的地址在server標簽中執行
break:
將rewrite后的地址在當前location標簽中執行
建立一個測試頁面
server {
# 訪問 /last.html 的時候,頁面內容重寫到 /index.html 中
rewrite /last.html /index.html last
# 訪問 /break.html 的時候,頁面內容重寫到 /index.html 中,並停止后續的匹配 rewrite /break.html /index.html break;
# 訪問 /redirect.html 的時候,頁面直接302定向到 /index.html中 rewrite /redirect.html /index.html redirect
頁面輸入的是
302重定到你在nginx網站根目錄下創建的目錄
# 訪問 /permanent.html 的時候,頁面直接301定向到 /index.html中
rewrite /permanent.html /index.html permanent;
這個和redirect差不多也是重定301

# 把 /html/*.html => /post/*.html ,301定向 rewrite ^/html/(.+?).html$ /post/$1.html permanent;
未完------------