2017-09-08 8 views
0

CORSの問題を抱えているサーバーがあり、開発段階で多くの苦痛を感じます。以前はウィンドウを使用していましたが、IIS書き換えモジュールではかなり簡単でした。何かのようなもの;IISがURL書き換えを行い、NGINXのproxy_passを受け取ります

<rules> 
    <rule name="ReverseProxyInboundRule3" stopProcessing="true"> 
     <match url="(.*)" /> 
      <conditions logicalGrouping="MatchAny"> 
       <add input="{HTTP_URL}" pattern="^.*(pattern1|pattern2|pattern3|pattern4).*$" /> 
      </conditions> 
      <action type="Rewrite" url="https://example.com/{R:1}" logRewrittenUrl="true" /> 
    </rule> 
    </rules> 

私の環境での呼び出しは次のとおりです。

localhost:8080/folder1/folder2/folder3/pattern1?param1=val1&param2=val2&param3=val3 

要求が

https://example.com/pattern1?param1=val1&param2=val2&param3=val3 

に送信され、私はnginxのの書き換え構文上experincedそのいくつかの基本的な書き換えトリックを試してみましたが、残念ながらそれを動作させることができなかった、とありません。

答えて

0

いくつかの試行(楽観的な言葉の選択がある)の後、私は自分が探していることをする方法を見つけました。

rewrite ^.*(/pattern1/.*)$ $1 last; 
    location /pattern1 { 
     proxy_pass   https://example.com; 
    } 

ディレクティブlocation block上またはproxy_passいずれかの末尾にスラッシュがないことを気をつけてください。また、locationブロックから実行しているので、キーワードlastは書き換え指令の最後に使用されています。

関連する問題