我的目标是:我有一个网站,我想无论打开哪个页面,地址拦始终显示http://localhost/MyWeb
不管有多少个页面,不管带多少参数,都始终显示上面的地址
救命呀!

解决方案 »

  1.   

    一个办法是使用frameset
    另外一个办法上全部使用ajax的方法
      

  2.   

    用URL重写,只能是把URL改变地址,但要只显示http://localhost/MyWeb,作不到了
      

  3.   

    方法一:http://localhost/MyWeb的主页用一个大的iframe 所有页面转化都在iframe 中进行方法二:所有页面跳转用Server.Transfer
      

  4.   

    啊,有这么难呀,使用框架是不适合的,但是全部使用AJAX如何实现,老大救我!
      

  5.   

    楼主可以自己写个ISAPI组件去实现地址重定向,或者去网上下载个ISAPI_Rewrite,它是基于正则表达式的URL处理引擎,设置好相关的正则表达式后,把它挂到IIS就可实现地址重定向。这种方式最大的好处是你不必去修改你网站相关页面的源代码。
      

  6.   

    查一下IHttpHandler吧,应该会满足你的需求
      

  7.   

    楼主不熟ISAPI_Rewrite的话,可以使用ISAPI实现Url重写, codeproject有个例子,url: http://www.codeproject.com/isapi/isapiredirector.asp
    它将URL中指定的cfm页面重写为asp页面,也就是假设你访问的URL是http://localhost/test.cfm, 则经重写后实际访问的是http://localhost/test.asp, 且重写后不会改变地址栏的URL,下面是它的重写函数:
    DWORD OnPreprocHeaders(CHttpFilterContext* pCtxt,PHTTP_FILTER_PREPROC_HEADERS pHeaderInfo)
    {
        char buffer[256];
        DWORD buffSize = sizeof(buffer);
        BOOL bHeader = pHeaderInfo->GetHeader(pCtxt->m_pFC, "url",buffer, &buffSize); 
        CString urlString(buffer);
        urlString.MakeLower(); // for this exercise 
        if (urlString.Find(".cfm") != -1) //we want to redirect this file
        {
            urlString.Replace(".cfm",".asp");
            char *newUrlString= urlString.GetBuffer(urlString.GetLength());
            pHeaderInfo->SetHeader(pCtxt->m_pFC, "url", newUrlString);
            return SF_STATUS_REQ_HANDLED_NOTIFICATION;
        }
        //we want to leave this alone and let IIS handle it
        return SF_STATUS_REQ_NEXT_NOTIFICATION;
    }如楼主的网站如果是dotnet开发的,也可以像楼上的说的那样用IHttpHandler.