通过web.config配置是这样的:<URLRewriter>
    <RewriterConfig>
      <url lookFor="/(\w{8}\-\w{4}\-\w{4}\-\w{4}\-\w{12}).html" writeTo="/default.aspx?id=$1" enabledToStatic="true" minutes="1" />
    </RewriterConfig>
  </URLRewriter>用户输入 http://localhost/4F0D606C-9014-DF11-8245-002564CD3F26.html后
直接访问  http://localhost/default.aspx?id=4F0D606C-9014-DF11-8245-002564CD3F26
并生成4F0D606C-9014-DF11-8245-002564CD3F26.html在根目录下;
下次访问时,就直接访问这个实际存在的4F0D606C-9014-DF11-8245-002564CD3F26.html页面.谢谢!

解决方案 »

  1.   

    给你个资源,生成静态页的两种方法。希望对你有帮助http://download.csdn.net/source/2080742
      

  2.   


    这个只是生成静态的html页面,没有伪静态页面的实现。不过还是谢谢你。
      

  3.   

    <rewriter> 
      <rewrite url="~/news/([a-zA-Z]+).html$" to="~/Show.aspx?title=$1" processing="stop" /> 
    </rewriter> <LookFor>~/news/([\w]+).html$ </LookFor> 
    <SendTo>~/Show.aspx?Title=$1 </SendTo> 
      

  4.   

    记得要重写什么Render方法,不知道怎么写。protected override void Render(HtmlTextWriter writer)
            {
                base.Render(new RewriteFormHtmlTextWriter(writer));
            }
      

  5.   

    当然,程序直接生成静态页面可以实现的 
    但是那样要生成很多这种页面以及文件夹 
    而且在数据量大的情况下生成是很浪费时间的 
    在这种情况下就要实现url重写了,当然就很多种方法 
    下面介绍的是微软的URLRewriter方法 1.首先下载URLRewriter.dll,下载之后直接复制到你的网站的bin目录中 
    2.配置你的web.config文件 
    在<configuration>节点下加 
    <configSections> 
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> 
      </configSections> <RewriterConfig> 
        <Rules> 
         <!--一下三个是我自己写的测试的,当然你可以写很多个 --> 
         <!--这个是把http://localhost:2001/default.aspx?id=1 生成http://localhost:2001/d1.aspx 这种页面 --> 
          <RewriterRule> 
            <LookFor>~/d(\d{0,5})\.aspx</LookFor> 
            <SendTo>~/default.aspx?ID=$1</SendTo> 
          </RewriterRule> 
        <!--这个是把http://localhost:2001/article.aspx?id=1 生成http://localhost:2001/1/a.html 这种页面 --> 
          <RewriterRule> 
            <LookFor>~/(\d{0,5})/a\.html</LookFor> 
            <SendTo>~/article.aspx?id=$1</SendTo> 
          </RewriterRule> 
        <!--这个是把http://localhost:2001/test.aspx?id=1 生成http://localhost:2001/1/ 这种页面 --> 
          <RewriterRule> 
            <LookFor>~/(\d{0,5})/</LookFor> 
            <SendTo>~/test.aspx?id=$1</SendTo> 
          </RewriterRule>     </Rules>   </RewriterConfig> 同时还要在<system.web>配置节下加 
          <httpHandlers> 
            <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 
            <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 
            <add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />       </httpHandlers> 3.好了,基本上就可以了,但是还有重要一点千万不要忘了 
    以上有三种情况的url生成 
    针对第一种情况,第一第二步配置完就可以实现了 
    可对第二种和第三种url情况,还需要进行一下配置 
    先说第二种情况:因为咱们重写的是.html后缀 
    所以需要在iis中进行.html映射,方法如下: 
    右击站点-属性-主目录-配置 
    在打开页面找扩展名.aspx,双击之后弹出窗口内复制可执行文件 
    一般是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 
    复制完之后点添加在弹出窗口把内容复制到可执行文件 
    扩展名.html当然这个你可以任意写了,不过要和 
    <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> 
    保持一致. 
    同时去掉确认文件是否存在,确定即可 
    完成之后输入http://localhost:2001/1/a.html 
    是不是就可以访问了?爽吧 下面介绍第三种情况,生成目录 
    这里面稍微有点复杂,同样配置iis 
    还是在那个弹出窗口,点插入 
    把复制的文件即C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 
    复制到可执行文件框内,同时去掉确认文件是否存在,确定即可 
    这样输入http://localhost:2001/1/,是不是就可以访问了?嘿嘿 
    可能读者会有疑问了:现在设置的这个和第二种设置的有什么区别? 
    现在设置的其实是进行*映射,即把所有的文件都进行url重写处理程序处理 
    这时其实就可以把.html 以及自带的.aspx等映射去掉,同样可以生成.html/.aspx/ url 
    好了,如果还想其他的扩展大家就尽情扩展吧。 4.现在再讲一下*映射要注意的问题 
    因为*映射是把所有的文件都要交给url称谢程序去处理,这样就会造成会把站点下的图片以及css 
    或者一些下载的rar等文件都要去处理,这样会慢吗?答案是毫无疑问的,肯定会增加内存的, 
    单单一网站的图片以及上传的图片就足以让程序减慢成倍的速度了。 
    那有什么办法进行处理吗? 
    当然,我们可以进行以下处理就可以把速度还原了: 
    方法1,把存放图片所在的文件夹转化成一个虚拟目录,在然后移处该虚拟目录*.*的映射,这样一来他的url重写程序就不会去处理图片文件,当然存放别的不需要url重写程序的文件也要象图片文件夹做类似的处理。 
    虚拟目录设置办法:在iis站点右击目录点属性,目录-点创建 
    然后点配置,在弹出窗口内删除:通配符应用程序映射(执行顺序)下添加的*.*的映射即可。 
    方法2,把不需要*.*映射的文件夹设置新站点和原来的站点分开,这样在原来的站点访问的时候用 
    新站点的域名即可。比如把图片设置站点http://images.ziuziu.cn,这样在http://ziuziu.cn站点访问图片的时候就必须使用http://images.ziuziu.cn/名称.gif,这样就避免了所有问件处理。 
    以上两种方法即可提高不少速度了,当然第一种药方便的多。 5.最后处理回发的情况大家可以在网上搜下即可。 对于ASPX页面,我们在客户端查看代码时会发现,它自动为form加入了action,并且地址就是开头所说的原始页面地址。而对于ASPX页面,若当它的action为空时也就将回发到当前地址。这样我们就可以通过在客户端清除action的方法,来实现回发后继续保持有地址。 在页面中加入以下代码即可: 
    <script type="text/javascript">try{document.forms[0].action=""}catch(ex){}</script> 
    如果有form的页面,就把上面代码加入<form></form>中,如果是用户控件就直接加到页面里面即可 
    此种方法最简单最使用,已经过测试 环境:Microsoft .NET Framework SDK v1.1 
    OS:Windows Server 2003 中文版
    ASP.Net生成静态HTML页
    在Asp中实现的生成静态页用到的FileSystemObject对象!
    在.Net中涉及此类操作的是System.IO 
    以下是程序代码 注:此代码非原创!参考别人代码
    //生成HTML页
      public static bool WriteFile(string strText,string strContent,string strAuthor) 
      {
       string path = HttpContext.Current.Server.MapPath("/news/");
       Encoding code = Encoding.GetEncoding("gb2312");
       // 读取模板文件
       string temp = HttpContext.Current.Server.MapPath("/news/text.html");
       StreamReader sr=null;
       StreamWriter sw=null;
       string str="";  
       try
       {
        sr = new StreamReader(temp, code);
        str = sr.ReadToEnd(); // 读取文件
       }
       catch(Exception exp)
       {
        HttpContext.Current.Response.Write(exp.Message);
        HttpContext.Current.Response.End();
        sr.Close();
       }
      
       
       string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
       // 替换内容
       // 这时,模板文件已经读入到名称为str的变量中了
       str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle
       str = str.Replace("biaoti",strText);
       str = str.Replace("content",strContent);
       str = str.Replace("author",strAuthor);
       // 写文件
       try
       {
        sw = new StreamWriter(path + htmlfilename , false, code);
        sw.Write(str);
        sw.Flush();
       }
       catch(Exception ex)
       {
        HttpContext.Current.Response.Write(ex.Message);
        HttpContext.Current.Response.End();
       }
       finally
       {
        sw.Close();
       }
       return true;此函数放在Conn.CS基类中了
    在添加新闻的代码中引用 注:工程名为Hover
     
        if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
        {
         Response.Write("添加成功");
        }
        else
        {
         Response.Write("生成HTML出错!");
        }
    -------------------------------------------------------------------------
    模板页Text.html代码
    -------------------------------------------------------------------------
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
     <HEAD>
      <title>ShowArticle</title>
      
     <body> biaoti
     <br>
     content<br>
     author
     </body>
    </HTML>
     
      

  6.   

    6 喽的办法很可以的,但是生成为静态和生成真正的html也是用2种方法实现的,
    跟我的title有点不一样,不过还是谢谢!
      

  7.   

    重写不说了吧 生成静态随便你怎么生成了,页面访问http://localhost/4F0D606C-9014-DF11-8245-002564CD3F26.html实际上是访问的http://localhost/default.aspx?id=4F0D606C-9014-DF11-8245-002564CD3F26的时候,检查是否有 
    http://localhost/news/4F0D606C-9014-DF11-8245-002564CD3F26.html这个页面,有的话直接跳转到这个页面,没有就生成静态注意,他们的路径不能一样,你的重写规则指定了该伪静态页面是转到default.aspx页面了