从 IIS 重写转换为 nginx

convert from IIS rewrite to nginx

<?xml version="1.0" encoding="UTF-8"?>
<rules>
        <clear />
        <rule name="wfq2020">
                <match url="^(auth|platform-admin|product|substation-admin)/(.*)" />
                <action type="Rewrite" url="https://google.com/{R:0}" />
        </rule>
    <rule name="api.wfq2020">
        <match url="^(wuneng-platform-web|wuneng-channel-web|wuneng-web|wuneng-user-web|mini-program)/(.*)" />
        <action type="Rewrite" url="https://api.google.com/{R:0}" />
    </rule>
</rules>

这是我的iis规则,我想把它转换成nginx规则,希望有人能帮助我!

我对 IIS 重写不是很熟悉,但我已经检查过their doc,它似乎与 NGINX 非常接近。

在 NGINX 上,建议尽可能使用 return (doc here). The {R:0} is similar to the NGINX vars, in this case, the $request_uri.

也可以和~*组合,这是一个“正则表达式用前面的”~*”修饰符指定(用于case-insensitive匹配)”(doc here) . ^/... 意味着它需要以它开头(例如以 /wuneng-platform-web 开头,然后是 (.*).

代码将类似于:

http {
  ## ...

  server {
    ## ...

    location ~* ^/(auth|platform-admin|product|substation-admin)(.*) {
        return 301 https://google.com$request_uri;
    }

    location ~* ^/(wuneng-platform-web|wuneng-channel-web|wuneng-web|wuneng-user-web|mini-program)(.*) {
        return 301 https://api.google.com$request_uri;
    }

    ## ...
  }

  ## ...

}

希望对您有所帮助:)