2

ウェブサイトを再構築しました。拡張機能は になります.html。現在、それらは.htm. たとえば、ユーザーがブックマークされたページからサイトにアクセスしたときに、そのバージョン.htmにリダイレクトする必要があります。.html

これに関する Q&A が既にあるかどうかを確認するために、stackoverflow を調べました。ほとんどは Apache - .htaccess 関連です。私はIISを使用しています。stackoverflow で見つけた最も近い答えは次のとおりです。IIS url rewrite rewriting all .asp to .html

その投稿のアドバイスに従ってみましたが、うまくいきません。ウェブページは私This webpage has a redirect loop.に教えてくれますError code: ERR_TOO_MANY_REDIRECTS

IIS の URL 書き換えモジュールにいます。インバウンド ルール用に新しい「空のルール」を作成します。そのstackoverflowの投稿でアドバイスされているように、私が使用している設定は次のとおりです:(ところで、私はこれをそのスレッドに投稿したはずですが、3年以上前なので、それがアドバイスされたかどうかはわかりませんでした)

要求された URL: パターンに一致

使用: 正規表現

パターン:(.*).htm(.*)

[大文字と小文字を区別しない] がオンになっています。

条件: ローカル グループ化: すべて一致

条件を追加しました...

条件方法:{REQUEST_METHOD}

入力文字列のチェック: パターンに一致

パターン:^GET$

[大文字と小文字を区別しない] がオンになっている

アクションの種類: リダイレクト

リダイレクト URL:{R:1}.html{R:2}

クエリ文字列の追加がチェックされています

リダイレクトの種類: 永続的 (301)

URL 拡張子が変更されたことを検索エンジンに知らせたいので、301 を実行しています。URL はまったく同じです。唯一の違いは、.html代わりに.htm. そう…something/something.htmですsomething/something.html

4

1 に答える 1

2

ルールは次のように単純にする必要があります。

<rule name="htm to html" stopProcessing="true">
    <match url="(.+).htm$" />
    <action type="Redirect" url="{R:1}.html" />
</rule>

または設定画面で:

ルール

このルールは、で終わるすべての URL をリダイレクトし.htm、少なくとも 1 つ以上の文字を含む.htmURL を同じ URLにリダイレクト.htmしますが、.html

于 2013-09-06T16:39:54.957 に答える