nginx配置url重寫

2021-10-03 08:19:32 字數 1430 閱讀 6012

url重寫是指通過配置conf檔案,以讓**的url中達到某種狀態時則定向/跳轉到某個規則,比如常見的偽靜態、301重定向、瀏覽器定向等

在配置檔案的server塊中寫,如:

server

server

因為301和302不能簡單的只返回狀態碼,還必須有重定向的url,這就是return指令無法返回301,302的原因了。這裡 last 和 break 區別有點難以理解:

location裡一旦返回break則直接生效並停止後續的匹配location

server 

location = /q.html

}

只是上面的簡單重寫很多時候滿足不了需求,比如需要判斷當檔案不存在時、當路徑包含xx時等條件,則需要用到if

if (表示式)

一些內建的條件判斷:

如:

# 如果檔案不存在則返回400

if (!-f $request_filename)

# 如果host不是xuexb.com,則301到xuexb.com中

if ( $host != '

xuexb.com')

# 如果請求型別不是post則返回405

if ($request_method =post)

# 如果引數中有 a=1

則301到指定網域名稱

if ($args ~ a=1

)

在某種場景下可結合location規則來使用,如:

# 訪問 /test.html 時

location = /test.html

# 301

rewrite ^ /$name.html permanent;

}

上面表示:

server塊中使用,如:

server

}

location表示式型別

等號型別(=)的優先順序最高。一旦匹配成功,則不再查詢其他匹配項。

^~型別表示式。一旦匹配成功,則不再查詢其他匹配項。

正規表示式型別(~ ~*)的優先順序次之。如果有多個location的正則能匹配的話,則使用正規表示式最長的那個。

常規字串匹配型別。按字首匹配。

server 

# 訪問真實位址直接報沒許可權

location /admin

}

**:

nginx配置url重寫

url重寫是指通過配置conf檔案,以讓 的url中達到某種狀態時則定向 跳轉到某個規則,比如常見的偽靜態 301重定向 瀏覽器定向等 在配置檔案的server塊中寫,如 server server last和break的區別 因為301和302不能簡單的只返回狀態碼,還必須有重定向的url,這就是...

nginx配置url重寫

url重寫是指通過配置conf檔案,以讓 的url中達到某種狀態時則定向 跳轉到某個規則,比如常見的偽靜態 301重定向 瀏覽器定向等 在配置檔案的server塊中寫,如 server serverlast和break的區別 因為301和302不能簡單的只返回狀態碼,還必須有重定向的url,這就是r...

nginx配置url重寫

url重寫是指通過配置conf檔案,以讓 的url中達到某種狀態時則定向 跳轉到某個規則,比如常見的偽靜態 301重定向 瀏覽器定向等 在配置檔案的server塊中寫,如 server serverlast和break的區別 因為301和302不能簡單的只返回狀態碼,還必須有重定向的url,這就是r...