1. 程式人生 > >Nginx rewrite配置

Nginx rewrite配置

大小寫 aps 文件 XML edi body 表達式 應用 判斷

rewrite應用   Rewrite模塊設置及Wordpress和Discuz的示例。Nginx的Rewrite規則比Apache的簡單靈活多了,從下面介紹可見一斑。 rewrite配置 Nginx可以用if進行條件匹配,語法規則類似C,舉例如下: if ($http_user_agent ~ MSIE) {rewrite ^(.*)$ /msie/$1 break;}1、正則表達式匹配,其中:
  • ~ 為區分大小寫匹配
  • ~* 為不區分大小寫匹配
  • !~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配
  • -f和!-f用來判斷是否存在文件
  • -d和!-d用來判斷是否存在目錄
  • -e和!-e用來判斷是否存在文件或目錄
  • -x和!-x用來判斷文件是否可執行
如:
if (!-f $request_filename) {proxy_pass  http://127.0.0.1;}其次,Nginx的Rewrite規則與Apache幾乎完全一致,所不同的是
最後的flag標記,舉例如下:
rewrite ^/feed/$ http://feed.shunz.net last;
flag標記有:
last 相當於Apache裏的[L]標記,表示完成rewrite,不再匹配後面的規則
break 與last類似
redirect 返回302臨時重定向
permanent 返回301永久重定向
Wordpress的重定向規則:
if (!-e $request_filename) {rewrite ^/(index|atom|rsd)\.xml$ http://feed.shunz.net last;rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 last;rewrite ^([_0-9a-zA-Z-]+)?(/.*\.php)$ $2 last;rewrite ^ /index.php last;}

  

Nginx rewrite配置