2012-05-05 3 views
0

CMS(sitefinity4.0)を使用してドットネット4.0で構築されたウェブサイトを持っています。このサイトはIIS6.0でホストされています。URL正規化を試していましたが、www.mysite.com/innerpages.aspxをリダイレクトするためにmysite.com/innerpages.aspxが必要でした。mysite.comの302リダイレクトを実行すると、 www.mysite.com/innerpage.aspxにリダイレクトされますが、301リダイレクトを実行しようとすると、eurl.axd /に対して404エラーが表示されます。301 IIS6.0とドットネット4.0でリダイレクトの問題

ステージング(同じアプリケーションとIIS設定)で同じセットアップが301と302のリダイレクトでうまく機能します。

解決策を探している間、私はIIS 6.0でASP.NET v4.0の拡張子のURL機能を無効にするには示唆記事に出くわし - Default.aspx page won't load on IIS 6

をしかし、私はステージングに設定をチェックし、それがステージングで無効にされていないことを発見しました。したがって、これがうまくいくかどうかはわかりません。

助けてください。

答えて

0

「私はステージングの設定を確認してステージングで無効になっていないことがわかりました」とは何を意味するのかよく分かりません。無効になっていない場合は、拡張機能のないURLをタックします。基本的に起こっているのは、リダイレクトで、プロセスが内部的に "eurl.axd/GUID"が実際のURLの一部ではないことを認識しないため、(取り除かれずに)そのまま残ります。ここで意図的にあなたのサイトとリダイレクトで拡張機能のないURLを使用しようとしているなら、うまくいけば、他の誰かがここで助けに来ることができます。

ただし、拡張レスURLを使用していない場合は、無効にする必要があります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0\EnableExtensionlessUrls = 0

をそして、あなたはそのレジストリエントリを変更した後、IISを再起動する必要があります:あなたは、レジストリキーを変更することによってそれを行います。そのレジストリエントリがない場合、IISは "not"(EnableExtensionlessUrls = 1)のように扱います。だからあなたは明示的にそれを取り除くためにそれを加えなければなりません。

注:

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\ASP.NET\v4.0.30319.0\EnableExtensionlessUrls = 0

:あなたは64ビットを実行している場合、あなたが探しているレジストリキーは、別の場所にあります