1

まず、Stackoverflowで同様の質問を読んで数時間過ごしましたが、答えがうまくいかないようです。

SEOの問題があるMVC4アプリケーションがあります。www以外はwwwにリダイレクトされません。サーバー(IIS7.5)とローカル環境(VS2010)にRewriteモジュールをインストールしました。私は多くの方法を試しましたが、どれもうまくいかないようです...

理想的には、MVC4ソリューションに書き換えルールを設定し、サーバー側の構成を行わないようにします。これは、新しいサーバーに展開する場合の方が便利だからです。

次のコードブロックをweb.configに入れようとしました:

 <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
    <!-- code added for SEO non-www to www redirect -->
    <rewrite>
      <rules>
        <rule name="Remove WWW prefix" >
          <match url="(.*)" ignoreCase="true" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^domain\.com" />
          </conditions>
          <action type="Redirect" url="http://www.domain.com/{R:1}"
              redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
    <!-- SEO code -->
  </system.webServer>

次に、ソリューションを(正しいドメイン名で)公開しましたが、何も変更されていません。http://domain.comにアクセスしようとすると、404notfoundエラーが発生します。

この部分でいくつかのコードブロックを試しましたが、機能しません。また、サーバーでこれを構成しようとしましたが、うまくいきませんでした。最善の解決策は、web.configでこの書き換えを行い、新しいWebサーバーに公開するたびにルールが適用されるようにすることです。

誰かがこれに何か問題があると思いますか?私のweb.configはMVC4アプリケーションにあり、VS2010でソリューションを右クリックしたときに表示される[公開]メニューから公開されます。

よろしくお願いします。

ルールに対してもこのブロックを試しましたが、何も変わりません。

  <rule name="Redirect to WWW" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^domain.com$" />
  </conditions>
  <action type="Redirect" url="http://www.domain.com/{R:0}" redirectType="Permanent" />
</rule>
4

0 に答える 0