如何从asp.net中的url中删除页面名称?

时间:2013-07-01 07:18:35

标签: asp.net url-rewriting

来自以下网址:

http://www.mywebsite.com/default.aspx

我想删除default.aspx,以便网址如下所示:

http://www.mywebsite.com/

我需要一种快速而干净的方法来做到这一点,我只需要使用default.aspx页面和没有其他页面。提前谢谢。

4 个答案:

答案 0 :(得分:7)

使用以下代码更改您的webconfig:它解决了我同样的问题。

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="default.aspx Redirect" stopProcessing="true">
                    <match url="^(.*\/)*default\.aspx$" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_METHOD}" negate="true" pattern="^POST$" />
                    </conditions>
                    <action type="Redirect" url="{R:1}" redirectType="Permanent"/>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

答案 1 :(得分:2)

您可以使用Routing

Global.asax文件中的

     protected void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes(RouteTable.Routes);  
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapPageRoute("defualt",
                            "",
                        "~/Default.aspx");
    }

并在您的重定向页面调用

Response.Redirect(GetRouteUrl("defualt", null)); 

了解更多信息: http://msdn.microsoft.com/en-us/library/cc668201(v=vs.100).aspx

答案 2 :(得分:0)

默认情况下,默认页面可能会有所不同,可能是default.html或index.html或default.aspx,具体取决于首选项。因此,如果你只是想从你提到的URL中删除它,请不要指定页面名称,默认情况下default.aspx会打开,并且不会在url中显示

如果您想进行URL重写,有多种方法可以执行此操作,您可以在web.config中进行更改,或者可以使用自己的httpModule查看以下链接: -

http://www.codeproject.com/Articles/2538/URL-Rewriting-with-ASP-NET

答案 3 :(得分:0)

您可以使用Uri

var uri = new Uri("http://www.mywebsite.com/default.aspx");
string urlIWant = uri.GetLeftPart(UriPartial.Authority);