デフォルトのドキュメントはルートではなくサブフォルダーにあります。どうすればasp.net 2.0 Webサイトでデフォルトにできますか。
iis7 の既定のドキュメント設定を '/pages/default.aspx' '~/pages/default.aspx' にしようとしましたが、うまくいきませんでした。
デフォルトのドキュメントは開始ページと同じではありません。デフォルトのドキュメントとは、ファイルを要求mysite.com/somefolder
して指定しなかった場合、IIS が表示するファイルを意味します。
特定のページをホームページとして使用する場合は、Default.aspx ファイルを作成し、分離コード クラスに次のように記述します。
public override void ProcessRequest(HttpContext context) {
context.Response.Redirect("pages/default.aspx", true);
}
クライアントが Javascript を無効にしている可能性があるため、サーバー側のアプローチの方が信頼性が高くなります。ただし、単純なリダイレクトではなく、永続的なリダイレクトを発行することをお勧めしResponse.Redirect
ます。また、JS を使用してそれを行うことは、SEO の観点からは良くありません。
ダミーの Default.aspx ページを作成する必要はありません。
Global.asax.cs ファイルに、次のように記述します。
public void Application_Start(object sender, EventArgs e)
{
var routeCollection = RouteTable.Routes;
routeCollection.MapPageRoute("DefaultRoute", string.Empty, "~/YourDesiredSubFolder/YourDesiredDocument.aspx");
}
説明:
デフォルトのドキュメントはサブフォルダー固有のものです。あなたがしようとしていることは (直接) 機能しません。ルートに default.htm ファイルを設定し、実際の「ホームページ」に更新します。
あなたが尋ねるべきより良い質問は、地球上であなたのホームページがルートディレクトリから抜け出した方法です.
理論的には、ディレクトリ内に Web.config ファイルを配置し、defaultDocument 要素を使用して既定のドキュメントを設定できます。ここを参照してください: https://stackoverflow.com/a/2012079/125938。
残念ながら、ローカルで動作させることはできませんでしたが、Visual Studio 開発サーバーでサポートされていないことが原因である可能性があります。
「index.html」が必要なデフォルトのページであり、「Public」サブフォルダーにあるとします。
「/Public/index.html」をデフォルトのサイトとして指定する代わりに、「Public/index.html」を試してください