首先在web.config里配置监听,如下方
    <httpModules>
      <add type="Galsun.HH.FCX.Web.UI.HttpModule, Galsun.HH.FCX.Web.UI" name="HttpModule" />
      <add name="FineUIScriptModule" type="FineUI.ScriptModule, FineUI"/>
    </httpModules>其次增加自己的监听事件
namespace Galsun.HH.FCX.Web.UI
{
    public class HttpModule : System.Web.IHttpModule
    {
        /// <summary>
        /// 实现接口的Init方法
        /// </summary>
        /// <param name="context"></param>
        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(ReUrl_BeginRequest);
        }
        private void ReUrl_BeginRequest(object sender, EventArgs e)
        {
           .....
            //这里是重写
            context.RewritePath(forumPath + "aspx/" + strTemplateid + urlPage, string.Empty, newUrl);
            return;
           ....
           //也可以直接跳转
             context.Response.Redirect("/index.aspx");
           ...
        }
.....

解决方案 »

  1.   

    如果是.net4.0以上,都自带url路由。
      

  2.   

    IIS目录节点的默认文档吧 
      

  3.   

    这个网站是没有编译过的,我看见他们的根目录下的index.aspx这个文件里面什么都没有,但是浏览器里面输入www.xxx.com/index.aspx,就可以访问到www.xxx.com/xxx/aspx/index.aspx。而且地址栏里面显示的是www.xxx.com或者是www.xxx.com/index.aspx
      

  4.   

    这个貌似不对吧,人家<httpModules>这个节点下只有<add type="HttpModule" name="HttpModule"/>,其他的什么都没有
      

  5.   

    这不还是有HttpModule么,找去看看。
      

  6.   

    也有可能使用ISAPI_Rewrite组件。
      

  7.   

    虽然说全是源代码,但是关键的方法全都封装在了DLL文件里面,那些DLL文件没有XML文档,就看方法名也不知道是干嘛的啊。
      

  8.   

    能不能详细一点,这个网站是.net4.0架构的
      

  9.   

    system.web.routing 类,自己google下。
      

  10.   


    Route 类
      

  11.   

    查过了,RouteCollection.MapPageRoute(string,string,string)方法。但是第二个string不知道该怎么写啊
      

  12.   

    ASP.NET 路由
      

  13.   

    最简单的办法就是写静态路由:
    第二个参数就是浏览器输入的url
    第三个参数是你的实际的url
      

  14.   

    protected void Page_Load(object sender, EventArgs e)
        {
            RouteCollection rc = new RouteCollection();
            rc.MapPageRoute("defualt", "defualt.aspx", "~/aspx/1/index.aspx");
        }
    我是不是写错了,怎么没有反应呢?在浏览器里面输入了localhost/defualt.aspx,结果仍然在这个页面。并没有跳转到localhost/aspx/1/index.aspx去啊
      

  15.   

    还有,我这个是webform,不是MVC。根本就没有 Global.asax 这个文件
      

  16.   

    假设他们的“主页”是在index.aspx目录下的一个文件,例如是
        http://www.XXX.com/xxx/aspx/index.aspx/default.aspx
    文件,那么在iis上设置将网站根目录下的index.html重定向到这个url,甚至在iis上设置网站根目录重定向到
        http://www.XXX.com/xxx/aspx/index.aspx/
    目录,等等许多方法都可以。实际上任何方法都可以,只要你知道
        http://www.XXX.com/
    这个地址会调用什么程序,然后发挥你的一点点能力你就能编程。比如说你也可以用php放到根目录下并且定向到你的asp.net程序。
    如果你不知道如何使用iis,如果你没有打开过iis的网站“属性”窗口,或者如果你没有在网站根目录下防止过自己写的文件,那么学习iis使用知识。这个跟asp.net没有关系。
      

  17.   

    晕死,你没明白我的意思啊,一个原始的IIS,没有任何设置的,就是个初始的状态,把网站扔到那个目录里面。他就可以实现路由的功能了。网站的bin目录里面也没有Rewriter.dll文件,web.config文件里面也没有写跟重写URL有任何关系的节点。但是他们的网站就是有输入http://www.xxx.com/index.aspx就能够访问http://www.xxx.com/xxx/aspx/index.aspx这个页面。而且地址栏里面显示的是http://www.xxx.com/index.aspx。我就想知道他们是怎么做到了,这难道不是ASP.NET实现的吗?
      

  18.   

    最终我已经知道结果了,是用来IIS自带的URL重写功能