2016-10-13 2 views
0

IIS 8.5のURL書き換えルールの作成に問題があります。私の専門知識を書くルールはほとんど中間ではなく、ドキュメンテーションは役に立たなかった。IIS URL書き換えルール - テストは機能しますが、結果はありません。

私は、次のURLリダイレクトしようとしている:このURLに

hostname.com/sub1/sub2/sub3/sub4

を:

hostname.com/sub1/sub6/sub7/SUB2/SUB4

そして、それによって、私は意味 -

  • hostname.comは可変です。この単一の.NETアプリケーションによって提供される複数のホスト名があります。
  • sub1は同じままであり、変数ではありません。
  • sub2はパターンをトリガーする必要があるサブであり、 変数ではありませんが、URLの別の場所に移動します。
  • 私は文字列 'sub1/sub2' へのURLを識別し、リダイレクトループを避けるためにパターンにハードコード化された を仮定します。
  • sub3が削除されます。
  • sub4は変数です。
  • sub6とsub7は変数ではありません。

私は可変変数を誤って使用していることを知っています。変数の意味は、URLの部分が変更され、キャプチャされて後方参照として使用されるということです。

私は例を明確にしましょう:

https://hostname.com/application/catalog/v3g5h6j8k9/feline-footwear

へ - 失敗したルールを書くことで>

https://hostname.com/application/showcase/default/catalog/feline-footwear

すべての私の試み。私はすべてが間違っていると確信しています。

私はこれに近いと思った。パターンテストはすべて成功しましたが、着信URLは取得されません。 ( - + [-ZA-Z0-9 _ +])を代わりに

をまた、私はこのルールがインストールされている私も使ってみました

  <rule name=“Catalog redir” enabled=“true” stopProcessing="true"> 
       <match url=“^(.*)/application/catalog/(.*)/(.*)” /> 
       <action type="Redirect" url=“{R:1}/application/showcase/default/catalog/{R:3}” redirectType="SeeOther" /> 
      </rule> 

:私はちょうど404を取得します(*)。ツリーの/アプリケーションレベルで、ルートではありません。これは間違っていますか?それとも、ウェブサイトツリーのルールの位置がパターンとどのように関係しているのでしょうか?私はドキュメントでもそれを見つけることができませんでした。

アドバイスを事前にいただきありがとうございます。

答えて

0

ツリー内でのルールの配置は、そのフォーマットに関して問題でした。それはルートに置かれていませんでしたが、/ applicationに置かれていたので、最初のセクションを取り除くと、一致URLの先頭がアプリケーションになるようになっていました。

関連する問題