web-dev-qa-db-ja.com

IIS7 Webページリダイレクトの質問

Noobの質問はこちら。私は検索しましたが、これを行う方法を説明するものはまったく見つかりませんでした。 2サーバーのWebファームでIIS7を使用しており、トラフィックは2つのサーバーのいずれかに負荷分散されています。

ページhttp://something./orgに移動するURL http://something.mydomain.comがあります

このページには、ユーザーがクリックしてhttp://something.mydomain.com/searchに移動できるハイパーリンクがあります。

http://somethingsearch.org/にアクセスするユーザーをリダイレクトして、http://something.mydomain.com/searchにリダイレクトしたい

これは可能ですか?これを達成するにはISAPI書き換えルールが必要かもしれないと思っていますが、確信はありません。

十分な情報が提供されていない場合は申し訳ありません。今日、私はこの小さなタスクを今日投げたばかりで、彼らは迅速な対応を求めています。質問やその他の必要な情報がある場合はお知らせください。掘り下げることができるかどうかを確認します。

1
Fernando Vega

これを引き継いだ私の同僚は、このソリューションで私たちのために働いた解決策を思いつくことができました。他の誰かが同様の問題に遭遇した場合、それが彼らを助けるかもしれないので、私はこの1つのループを閉じるために投稿すると思いました。

彼はISSのISAPI ReWrite Managerを使用して、次のようなISAPI ReWrite/ReDirectルールを作成しました。

RewriteEngine on

RewriteCond %{HTTP_Host} ^(www\.)?domain\.org$

RewriteRule ^(.*)$ http://something.domain.com/Search [I,O,RP,L]

これは皆さんが言っていることとほぼ一致していますが、彼が遭遇した問題は、サイト内のサブディレクトリにリダイレクトするときに同じURL http://something.orgを維持しようとしたことでした。

それで、彼はそれを地獄に言い、サブディレクトリを含めて別のURLにリダイレクトしました。

ご意見ありがとうございます!!

1
Fernando Vega

サイトのURLの先頭に「 http:// www 」を強制する書き換えルールがあります。これは主にGoogleアナリティクス用です。そのため、誰かが http://mywebsite.com にアクセスすると、 http://www.mywebsite.com にリダイレクトされます。

これは、次の2つの方法で実現できます。

  • IIS URL書き換えがインストールされている場合は、IISに書き換えを作成します。方法は次のとおりです。

IIS Managerに書き換えルールを追加します

Match URLセクション

  • ルールに名前を付ける
  • [リクエストされたURL]の下の[パターンに一致]を選択します。
  • [使用]の下の[正規表現]を選択します。
  • この式「^(。*)$」を追加します
  • [大文字と小文字を区別しない]をオンにします

    Match URL Section Screen Shot


条件セクション

  • 「論理グループ」を「すべて一致」に設定します
  • 「追加」ボタンをクリックします
  • 条件入力に「{HTTP_Host}」と入力します
  • パターンに一致させるかどうかを選択します(私の場合は一致しませんでした)
  • 式「^ www。(。+)$」を入力します
  • [大文字と小文字を区別しない]をオンにします

    Add Condition


アクションセクション

  • アクションタイプに「リダイレクト」を選択します
  • リダイレクトURLを入力します-私の場合は「 http:// www 。{HTTP_Host}/{R:1}」
  • [クエリ文字列を追加する]をオンにします
  • リダイレクトタイプとして「Permanent(301)」を選択します

enter image description here

ルールを保存

  • サイトが.NETサイトの場合、web.configを編集して「system.webServer」セクションの下にルールを追加します

    <rewrite>
      <rules>
        <rule name="wwwrewrite" enabled="true" stopProcessing="true">
          <match url="^(.*)$" ignoreCase="true" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{HTTP_Host}" pattern="^www\.(.+)$" negate="true" />
          </conditions>
          <action type="Redirect" url="http://www.{HTTP_Host}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
    

お役に立てれば....

1
Aaron Davis

Microsoftの IIS URL Rewrite extension を使用できます。

IIS URL Rewrite 2.0を使用すると、Web管理者は強力なルールを作成して、ユーザーが覚えやすく、検索エンジンが見つけやすいURLを実装できます。ルールテンプレート、書き換えマップ、.NETプロバイダー、およびIIS Managerに統合されたその他の機能を使用することにより、Web管理者はHTTPヘッダー、HTTP応答または要求ヘッダーに基づいてURL書き換え動作を定義するルールを簡単に設定できますIISサーバー変数、さらには複雑なプログラム規則。さらに、Web管理者は、書き換えルールで表現されたロジックに基づいて、リダイレクトの実行、カスタム応答の送信、またはHTTP要求の停止を行うことができます。

IIS URL書き換えは、IISのApache mod_rewriteと同等です。

1
Larry Silverman