Nginx
從 IIS 重寫轉換為 nginx
我需要將 IIS 重寫規則轉換為 NGinX 重寫。我取得了一點進展,因為我不知道如何轉換部分 IIS 規則。這是我的 IIS 配置:
匹配模式:^(.*)$
重寫 URL:index.html 並附加查詢字元串
條件:匹配所有
- REQUEST_URI 與模式“/api(.*)$ 忽略大小寫”不匹配
- REQUEST_FILENAME 不是文件
到目前為止,我在 NGinX 上所做的是
location / { root html; index index.html index.htm; if ($request_uri !~ "/api(.*)$") { rewrite ^(.*)$ index.html } }
我想我必須使用變數 $request_filename 但是我不知道如何使用它來過濾 IIS 上的文件並將其放在 AND 邏輯操作中的 if 條件中。
這是前端控制器模式的典型案例,在 nginx 中實現如下:
location / { try_files $uri $uri/ /index.html$is_args$args; }
這將使 nginx 首先查找文件,如果找不到文件,則將請求發送到
/index.html
並附加可能的查詢參數。
/api
然後為URI指定不同的規則:location /uri { ... API handling rules ... }
沒有更多資訊,這是我能寫的最多的答案。