溫馨提示×

常用的nginx rewrite重寫規則有哪些

小億
173
2023-08-14 18:55:11
欄目: 編程語言

常用的nginx rewrite重寫規則有以下幾種:

  1. 重定向:
  • 將所有請求重定向到一個新的URL:rewrite ^/(.*)$ http://newdomain.com/$1 permanent;

  • 將只有特定路徑的請求重定向到新的URL:rewrite ^/old-path/(.*)$ /new-path/$1 permanent;

  • 將HTTP請求重定向到HTTPS:rewrite ^/(.*)$ https://$host/$1 permanent;

  1. URL重寫:
  • 將URL中的查詢字符串參數添加到重定向后的URL中:rewrite ^/path/(.*)$ /path?param=$1 last;

  • 將URL中的查詢字符串參數重寫為路徑參數:rewrite ^/path\?param=(.*)$ /path/$1 last;

  • 將URL中的路徑參數重寫為查詢字符串參數:rewrite ^/path/(.*)$ /path?param=$1 last;

  1. 防止目錄暴露:
  • 防止訪問以點開頭的隱藏文件或目錄:rewrite /\.([^./]+)$ /$1 last;

  • 防止訪問未包含文件擴展名的文件:rewrite ^/path/(.*)$ /path/$1.html last;

  • 防止訪問未包含文件擴展名的目錄:rewrite ^/path/(.*)$ /path/$1/ last;

  1. 路徑重寫和代理:
  • 將請求重寫到指定路徑下的文件:rewrite ^/path/(.*)$ /new-path/$1 last;

  • 將請求重寫到另一個服務器的路徑:rewrite ^/path/(.*)$ http://newdomain.com/$1 last;

  • 將請求重寫到另一個服務器的路徑,并保持原始的URI和查詢參數:rewrite ^/path/(.*)$ http://newdomain.com/$1$is_args$args last;

  1. 條件重寫:
  • 僅當請求的主機名為特定值時進行重寫:if ($http_host = "old.domain.com") { rewrite ^/(.*)$ http://new.domain.com/$1 permanent; }

  • 僅當請求的方法為POST時進行重寫:if ($request_method = POST) { rewrite ^/(.*)$ /new-path/$1 last; }

  • 僅當請求的URL不包含特定字符串時進行重寫:if ($request_uri !~ "allowed-string") { rewrite ^/(.*)$ /new-path/$1 last; }

請注意,在使用rewrite規則時,應謹慎使用if語句,因為它可能導致配置復雜性和性能問題。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女