【问题标题】:url rewriting without page name没有页面名称的url重写
【发布时间】:2011-07-02 15:46:07
【问题描述】:

我想将这 3 个路径路由到默认的基本 url 路径。

www.mysite.com/page1.aspx
www.mysite.com/page2.aspx
www.mysite.com/page3.aspx

我想在地址栏中显示这 3 个页面,如下所示:www.mysite.com

我的asp.net项目中只有这3个页面。

如何在带有 IIS 6.0 的 asp.net 3.5 sp1 中执行此操作。

 void Application_BeginRequest(object sender, EventArgs e)
 {
            switch (HttpContext.Current.Request.Url.AbsolutePath.ToLower())
            { 
                case "/page1.aspx":
                    HttpContext.Current.RewritePath("~/default.aspx");
                    break;                
                 case "/page2.aspx":
                    HttpContext.Current.RewritePath("~/default.aspx");
                    break;                 
                 case "/page3.aspx":
                    HttpContext.Current.RewritePath("~/default.aspx");
                    break;             
            }
  }

使用此代码,发生错误:

Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /default.aspx

问题是重写 url。它正在搜索 default.aspx 文件。没有 default.aspx 文件。有page1.aspx文件。

为什么要搜索 default.aspx ?我只是想重写路径..

【问题讨论】:

    标签: c# iis-6 url-rewriting asp.net-3.5 url-routing


    【解决方案1】:

    您对HttpContext.Current.RewritePath 的调用是说“如果有人要求/page1.aspx(或/page2.aspx/page3.aspx),请改为~/default.aspx

    如果~/default.aspx 不存在,自然会抛出 404。

    你想做什么?您说您“想将这 3 个路径路由到默认的基本 url 路径”但是如果 ~/default.aspx 不存在,那么该路径是什么

    【讨论】:

    • 我只想重写url,不想路由另一个页面。
    • 我不确定您所说的“重写网址”是什么意思。重写 URL 意味着提供一个页面,而不是 URL 指向的物理页面。当用户请求http://www.mysite.com/page1.aspx 时,您希望究竟发生什么?
    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2021-06-29
    • 2018-04-13
    • 1970-01-01
    • 2013-12-23
    相关资源
    最近更新 更多