私は、いくつかのIISリダイレクトルールを働かせようと試みている私の頭をレンガの壁に対して叩いていました。 Stack OverflowとIIS.netで検索して読みましたが、まったく動作しません。IISリライトモジュール - 保守パスとクエリ文字列をリダイレクトするが、追加のクエリ文字列パラメータを追加する方法は?
私は自分のローカル(実際の)IISで試していますが、私は書き換え2.0モジュールをインストールしており、修復をインストールしようとしました。私は、adminのcmd行でiisresetを何度もやったことが気になるよりもずっとやりました。
私のホストファイルには、URL my.test.comに対して127.0.0.1が設定されています。
私が達成したいのは、既存のパスとクエリーストリング値が存在する場合は、それを維持しながら、追加のクエリーストリングパラメータでサブドメインURLをメインドメインURLにリダイレクトすることです。ウェブサイトのルートフォルダにある
Iセットアップ3つのルールを次のように
<system.webServer>
<rewrite>
<rules>
<rule name="PathAndQueryString" enabled="true" stopProcessing="true">
<match url="(/\w*)(\?\w*=\w*)([&\w*=\w*]*)" />
<action type="Redirect" url="https://www.test.com{R:1}{R:2}{R:3}&param=value" appendQueryString="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="my.test.com" />
</conditions>
</rule>
<rule name="Querstring" enabled="true" stopProcessing="true">
<match url="(\?\w*=\w*)([&\w*=\w*]*)" />
<action type="Redirect" url="https://www.test.com{R:1}{R:2}&param=value" appendQueryString="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="my.test.com" />
</conditions>
</rule>
<rule name="DomainOnly" enabled="true" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url="https://www.test.com?param=value" appendQueryString="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="my.test.com" />
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
残念ながらパターンをテストし、{Rを:x}は確認にもかかわらず、私が使用してこれをテストしようとすると、キャプチャが正しいですエッジ、クロム、FirefoxとIEのすべてのためのルールは存在しないように動作します。
テスト:
- https://my.test.com >>https://www.test.com?param=value
- https://my.test.com/SomePath >>https://www.test.com/SomePath
- https://my.test.com/SomePath?AParam=AValue >>上記のテスト作業の https://www.test.com/SomePath?AParam=AValue¶m=value
なしには、彼らがリダイレクトせずに務めます。
また、一致パターンの一部として使用されている条件パターンを入れてみましたが、どちらかで動作しませんでした。実際には、ルールがサイトのルートにあるときにホストを含まないが、何も動作しないと言ったスタックオーバーフローポストを読んだ後に、条件に移動しました。
ご協力いただければ幸いです。
UPDATE 1:パスとクエリ文字列ルールのは(/ワット\ *)は、このパターンの開始から太字の一部を除去することを試みました。何の効果もありませんでした。
UPDATE 2:機能を「失敗した要求トレース」非常に気質を有効にしようとしましたし、それが実際に働いているとき、それはマッチのURLパターンのどれもが、今では蹴り開始した第三のルールを除いて、一致していないことを言うと、リダイレクトされますが、明白な理由のためにパスと他のクエリ文字列のパラメータを維持していません。
UPDATE 3:エッジとIEでは、どのルールもまったく機能しません。 ChromeとFFでは、ドメインのみのリダイレクトが機能しているように見えますが、ドメインのみのルールを無効にしてIISを再起動すると、ルールがまだ存在するように動作します.FFSはこの酷い勢いで私の血を沸騰させますそれほど難しいことではありません。