web-dev-qa-db-ja.com

IIS URL書き換えが機能しない

IIS Windowsマシンで完全に正常に機能するリダイレクトルールを設定しています。ただし、Macを使い始めているので、VirtualBoxをインストールしましたVM = Windowsを搭載し、まったく同じセットアップを使用しました。これで、VirtualBox for Macで実行したWindows VMは、これまで使用した物理Windowsマシンと同じです。

問題は、URLリダイレクトが機能していないことです。ゲストマシン(Windows)から、リダイレクトする必要のあるURLを参照しましたが、正しく実行されません。これは、仮想マシンのネットワークを構成する方法と関係があると思います-ポート転送ルールを作成する必要がありますか?どれ?

ルールは次のとおりです-web.configから(物理マシンでは問題なく動作します):

<rule name="API" patternSyntax="ECMAScript" stopProcessing="true">
    <match url="api/.*" />
    <action type="Rewrite" url="https://api.MyDomain.com/{R:0}" />
</rule>

VMについて-2つのネットワークアダプタを定義しました。

  • 1:NAT

  • 2:ホストオンリーアダプター

ゲストマシンからWebにアクセスできることに注意してください。また、ローカルでWebサービスにアクセスすることもできます。ルールが適用されるときのURLの書き換えを除いて、すべて問題ありません。

2

箱から出して、UrlRewriteは次のように同じページへの書き換えのみを行うことができます。

<rule name="Rewrite to article.aspx">
<match url="^article/([0-9]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
</rule>

別のドメインの別のサイトに完全に書き換えを行おうとしていて、SSLオフロードを実行しようとしているようです-これは リバースプロキシ が実行することです。これを機能させるには、 Application Request Routing をインストールする必要があります。

この構成をデバッグするために私がすることは次のとおりです。

  1. 書き換えアクションをリダイレクトに置き換えて、それが機能するかどうかを確認します。これにより、ルールがリクエストに適用されることを確認できます。
  2. サイト内での書き換えのみを実行しようとしている場合は、書き換えURLを相対URLに変更します。
  3. 本当に別のサイトに書き直す必要がある場合は、インストールして構成します [〜#〜] arr [〜#〜] (それ自体が別の問題を引き起こす可能性があります)
3
qbik