ASP.NET 实现伪静态网页方法

方法一:利用Httphandler实现URL重写(伪URL及伪静态)

我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服务器根目录“/”下存在名为“show-12-34.html”的文件,其实实际它可能是不存在的,而可能你看到的内容是“/aspx/show.aspx?type= 12&id=34”的内容,为什么要这样做呢?原因有多个方面:首先是增强URL的友好性,记“show-12-34.html”总比 “/aspx/show.aspx?type=12&id=34”好记吧?其次就是方便搜索引擎收录,很多搜索引擎更看好静态HTML页,比如:百度;其次就是出于安全性的考虑,因为这样隐藏了参数“type”、“id”。是不是很有意思呢?

其实这是利用URL重写实现的,下面我就说一下在ASP.NET2.0下我所知道的最简单的实现方法:通过实现接口“IHttpHandler”来接管HTTP请求,Follow me!

1.在资源管理方案中添加一个类,类的代码如下:

[csharp] view plaincopy

  1. //类URLRewriter程序清单:
  2. using System;
  3. using System.Data;
  4. using System.Configuration;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. /// <summary>
  12. /// UrlRewriter URL重写类
  13. /// Author:yoyo
  14. /// blog:http://yangmingsheng.cn
  15. /// </summary>
  16. public class UrlRewriter : IHttpHandler //实现“IHttpHandler”接口
  17. {
  18. public UrlRewriter()
  19. {
  20. //
  21. // TODO: 在此处添加构造函数逻辑
  22. //
  23. }
  24. public void ProcessRequest(HttpContext Context)
  25. {
  26. try
  27. {
  28. //取得原始URL屏蔽掉参数
  29. string Url = Context.Request.RawUrl;
  30. //建立正则表达式
  31. System.Text.RegularExpressions.Regex Reg = new System.Text.RegularExpressions.Regex
  32. (@"/show-(\d+)-(\d+)\..+",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
  33. //用正则表达式进行匹配
  34. System.Text.RegularExpressions.Match m =
  35. Reg.Match(Url,Url.LastIndexOf("/"));//从最后一个“/”开始匹配
  36. if (m.Success)//匹配成功
  37. {
  38. String RealPath =
  39. @"~/aspx/show.aspx?type=" + m.Groups[1] + "&id=" + m.Groups[2];
  40. //Context.Response.Write(RealPath);
  41. //Context.RewritePath(RealPath);//(RewritePath 用在无 Cookie 会话状态中。)
  42. Context.Server.Execute(RealPath);
  43. }
  44. else
  45. {
  46. Context.Response.Redirect(Context.Request.Url.ToString());
  47. }
  48. }
  49. catch
  50. {
  51. Context.Response.Redirect(Context.Request.Url.ToString());
  52. }
  53. }
  54. /// <summary>
  55. /// 实现“IHttpHandler”接口所必须的成员
  56. /// </summary>
  57. /// <value></value>
  58. /// Author:yoyo
  59. /// blog:http://yangmingsheng.cn
  60. public bool IsReusable
  61. {
  62. get { return false; }
  63. }
  64. }

2.在web.config文件还要添加一下设置项

在<system.web>节点下添加如下代码:

[csharp] view plaincopy

  1. <httpHandlers>
  2. <add verb="*" path="*/show-?*-?*.aspx" type="UrlRewriter" />
  3. </httpHandlers>

解释一下:

verb是指允许的动作“GET”、“POST”、“PUT”中的一种或几种,星号“*”表示全部允许;

path是指匹配路径,支持简单的通配符;

type是指绑定的类名以及包括命名空间(如果有的话);

对了,首先你要建立一个WEB窗体“show.aspx”在目录“aspx”下,因为这个文件就是实际接受请求并显示相关内容的页面。

OK!,编译,打开网站输入地址http://localhost:80/show-12-34.aspx 访问一下,检查看是不是显示的“/aspx/show.aspx?type=12&id=34”的内容呢?!

上面我是设置了匹配ASPX文件,因为IIS里.HTML扩展名默认是不归ASP.NET接管的,如果要接管HTML请求,
请将IIS的扩展名.HTML映射到“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,
然后将上面的aspx改成html:

[csharp] view plaincopy

  1. <httpHandlers>
  2. <add verb="*" path="*/show-?*-?*.html" type="UrlRewriter" />
  3. </httpHandlers>

现在打开网站输入地址http://localhost:80/show-12-34.html 访问一下~!

方法二:地址重写、使用伪静态、页面回发处理

制作网站页面的时候,有时候为了用户的体验和搜索引擎的收录,很多网站经常使用伪静态地址重写,或者称为 URL地址重写的办法,来将诸如:MyEbook.aspx?ID=1,MyEbook.aspx?ID=2MyEbook.aspx?ID=3等带有参 数的动态页面伪装成为一个静态页面,比如,将以上的伪装成为My1.html,My2.html,My3.html等等诸如此类!

出发点是很好的,不仅有利于用户体验,也有利于收录,实在是一举两得!

好处已讲,现在来谈谈使用这种办法所存在的毛病,问题就在于,当你使用伪静态技术的页面有按钮,需要提交内容时,这个时候,一旦与服务器之间有回发动作, 那么,地址栏里面显示的网页地址就不再是伪装出来的My1.html,My2.html,My3.html等等拉,而是变为MyEbook.aspx? ID=1,MyEbook.aspx?ID=2MyEbook.aspx?ID=3等等洛,如此一来,会让不太懂网页制作的网友感到不安,他们会认为自己 在上一个骗子网站,认为自己提交的数据都被另外一个网站给偷走了,总之,给他们的感觉就是,这样的网站具有欺骗性质;很可能,以后他们再也不敢上你的网站 了!!!………

下面本人就个人解决如上问题的心得体会做如下说明,希望能够帮助广大网友解决问题!

解决如上问题,有很多种办法,有使用Javascript禁止回发,有将页面的

改为等等多种方法,反正能改的地方,都有人使用过了,并且,这样的文章比较多,但是难以实现,就本人脾气而已,更喜欢直接了当的办法,尽量少改地方,免得日后出错麻烦;

第一步:打开你的网站下面,新建一个类,文件名称大体如此:MyActionlessform.cs

第二步:该类的代码如下:

[csharp] view plaincopy

  1. using System;
  2. using System.IO;
  3. using System.Web;
  4. using System.Web.UI;
  5. namespace MyURL
  6. {
  7. public class MyOLPage : Page
  8. {
  9. public MyOLPage()
  10. { }
  11. protected override void Render(HtmlTextWriter writer)
  12. {
  13. if (writer is System.Web.UI.Html32TextWriter)
  14. {
  15. writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
  16. }
  17. else
  18. {
  19. writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
  20. }
  21. base.Render(writer);
  22. }
  23. }
  24. internal class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter
  25. {
  26. private string _url; // 伪装的URL
  27. internal FormFixerHtml32TextWriter(TextWriter writer)
  28. : base(writer)
  29. {
  30. _url = HttpContext.Current.Request.RawUrl;
  31. }
  32. public override void WriteAttribute(string name, string value, bool encode)
  33. {
  34. if (_url != null && string.Compare(name, "action", true) == 0)
  35. {
  36. value = _url;
  37. }
  38. base.WriteAttribute(name, value, encode);
  39. }
  40. }
  41. internal class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter
  42. {
  43. private string _url;
  44. internal FormFixerHtmlTextWriter(TextWriter writer)
  45. : base(writer)
  46. {
  47. _url = HttpContext.Current.Request.RawUrl;
  48. }
  49. public override void WriteAttribute(string name, string value, bool encode)
  50. {
  51. if (_url != null && string.Compare(name, "action", true) == 0)
  52. {
  53. value = _url;
  54. }
  55. base.WriteAttribute(name, value, encode);
  56. }
  57. }
  58. }

之后,将这个类文件编译成为MyActionlessform.dll文件,并在网站的项目中引用他,

第三步:打开具有回发操作的页面,将其中的:System.Web.UI.Page更改为: MyURL.MyOLPage,如此而已,一劳永逸了,以后不再担心回发暴露真实地址吓走网友拉!

至此,大功可成一半多一点,接下来问题又来了,什么问题呢,你运行一下你的网站,是不是出现如下错误呀!

CS0433: 类型“MyURL.MyOLPage”同时存在于“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ Temporary ASP.NET Files\schoolit\3266aab1\aca2fc74\App_Code.2-69spm5.dll”和“c:\WINDOWS\ Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\schoolit\3266aab1\aca2fc74\assembly\dl3\4d107fc6\00b753fe_ea19c801\ MyActionlessform.DLL”中

大体就是这样的错误了,针对这样的错误,有很多解决办法,有的地方说,删除临时使用的文件夹,删除某个命名 空间等等操作,俺都试过了,但是百试不得其果,后来俺就自己想想,出现这样的错误无非就是两个文件同时存在,但是又不能重复使用,解决办法那还不简单,停 用一个,只使用一个就行了嘛

上面的,我们不是建立了一个MyActionlessform.cs了吗,它存在App_Code这个文件夹里面,另外一个是 MyActionlessform.dll,两个文件内容完全一样,做好了,我们就不需要MyActionlessform.cs了,我们只需要 MyActionlessform.dll,那么,想方设法将前者弄走不就得了(本人建议将此文件排除项目,不提倡直接删除该文件,因为以后可能使用 到),本人做法是,在项目中直接排出MyActionlessform.cs文件,经过测试,大功至此已结束!!!!

方法三:利用Mircosoft URLRewriter.dll实现页面伪静态

昨天,转贴了一篇利用ISAPI筛选器来实现URL伪静态的文章,我按照文章上的内容做,可是没有做出来,目前看来,该方法没有使用Microsoft URLRewriter.dll这个方法好,至少我个人觉得,花了一个晚上的时间,终于研究出来了怎么利用这个dll文件来对asp.net页面实现静态 化了,其实很简单。
一,获得Mircosoft URLRewriter.dll:
获得Mircosoft URLRewriter.dll可以到http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx?mfr=true
这里,选择[下载本文的源代码],下载完毕后,导入工程,我这里没有对该工程做任何修改,保留了原来的重写方式,然后直接在VS2005里面生成.dll文件就可以了。
二,使用该dll文件:
添加引用,搞定。
三,页面方面的设计,这里不在赘述了,我会放一个下载包,有兴趣的朋友下载来看看吧,代码写的比较乱。
四,web.config的配置
这部是非常关键的,也是静态化能否成功的关键。

[html] view plaincopy

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <configSections>
  4. <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  5. </configSections>
  6. <RewriterConfig>
  7. <Rules>
  8. <RewriterRule>
  9. <LookFor>~/web/new/type/(.[0-9]*)\.html</LookFor>
  10. <SendTo>~/web/new.aspx?id=$1</SendTo>
  11. </RewriterRule>
  12. <RewriterRule>
  13. <LookFor>~/web/index.html</LookFor>
  14. <SendTo>~/web/index.aspx</SendTo>
  15. </RewriterRule>
  16. </Rules>
  17. </RewriterConfig>
  18. <system.web>
  19. <httpHandlers>
  20. <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
  21. <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
  22. </httpHandlers>
  23. <compilation debug="true"/></system.web>
  24. </configuration>

这里简单介绍一下:

[html] view plaincopy

  1. <RewriterConfig>
  2. <Rules>
  3. <RewriterRule>
  4. <LookFor>要查找的模式</LookFor>
  5. <SendTo>要用来替换模式的字符串</SendTo>
  6. </RewriterRule>
  7. <RewriterRule>
  8. <LookFor>要查找的模式</LookFor>
  9. <SendTo>要用来替换模式的字符串</SendTo>
  10. </RewriterRule>
  11. </Rules>
  12. </RewriterConfig>

httpHandlers的设置主要是配合IIS将请求重新定义处理,这里也比较关键,如果不存在合理的httpHandlers,那么,访问肯定会失败的。

关于正则表达式,可以到百度里搜索:"常用正则表达式",会有很多。

五.配置IIS解析.html文件
右键点我的电脑-->管理-->展开‘服务和应用程序‘-->internet信息服务-->找到你共享的目录-->右键 点击属性 -->点击‘配置‘-->映射下面 -->找到.aspx的可执行文件路径 复制路径-->粘贴路径-->扩展名为".html"-->然后把检查文件是否存在的勾去掉这样就可以了,如果遇到“确定”按钮失效, 可以用键盘事件编辑路径即可解决。

本文实例下载:http://files.cnblogs.com/zhangyi85/StaticWeb.rar

asp.net伪静态页面生成方法 (续)

大家对伪静态(URL重写)有什么看法?
以.aspx\.asp\.php结尾的页伪静态为以.htm或者.html结尾的页有什么看法,性能会得到提高吗,有什么好处? 
那么或者直接生成静态页面又有什么好处,是否推荐在一个网站大量使用呢? 
对于腾讯那样的大的门户网站他们的新闻页是生成的静态页呢或者是伪装的?

最佳答案:
运行PHP,ASP.NET,JSP,ColdFusion的网页服务器(如IIS,Apache),大多可以用URL Rewriting来实现隐藏或改变拓展名。大网站,象腾讯,百度(用PHP),都在用URL Rewriting的方法来把拓展名隐藏或改变。好处有几点:

1. 搜索引擎比较喜欢.html,.htm的(与.jsp,.php,.aspx,.cff相比),因为.html, .htm是静态的,更容易让引擎了解你网页的内容。而动态网页的内容是根据用户,来输出不同的内容,不容易让引擎吸收具体HTML内容。

2. 如果不用URL Rewriting将拓展名隐藏或改成.html,那么假如这个网站要换个技术或把动态页面换成静态,则需要寻找所有含有拓展名的连接,把连接所含URL进行拓展名修改(如从JSP换到PHP技术,则要寻找所有含有.jsp的页面,并把所有含.jsp的URL改成.php,费时费力)。URL Rewriting正好避免了这点,因为好的URL是能做到“不变应完变”的。

3. 防止某些黑客恶意攻击。有些大网站采用不同的技术开发不同功能的页面。而把拓展名改掉,让黑客无法确认此页面用的技术是什么,从而就无从下手。

4. 方便访问者使用。访问者不是程序员,他们不明白什么是.jsp,.php.aspx,他们只知道URL。所以统一把拓展名拿掉,或者同意把拓展名换为html,htm,有利于用户的使用。用户可以知道现在在你网站的位置,如何通过输入URL到某一页面。

实例:
Intelligencia.UrlRewriter.dll aspx重写为html实例 
  
1、http://urlrewriter.net/   下载解压缩后把Intelligencia.UrlRewriter.dll 文件添加引用到web工程里。

2.web.config配置:

[html] view plaincopy

  1. <configSections>
  2. <!--UrlRewriter-->
  3. <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
  4. </configSections>
  5. <system.web>
  6. <!--UrlRewriter-->
  7. <httpModules>
  8. <add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
  9. </httpModules>
  10. </system.web>
  11. </system.web>
  12. <!--UrlRewriter-->
  13. <rewriter>
  14. <rewrite url="~/test_([a-zA-Z]+).html{1}quot; to="~/Show.aspx?Code=$1" processing="stop" />
  15. </rewriter>

其中: <rewrite url="~/test_([a-zA-Z]+).html$" to="~/Show.aspx?Code=$1" processing="stop" />
若果code= abc的话,最终显示的结果为"虚拟目录名称/test_abc.html" 。如果吧.html替换成 .aspx那就是"虚拟目录名称/test_abc.aspx"

3.IIS配置:

如果是用"虚拟目录名称/test_abc.aspx" 的话,不需要配置IIS. 使用了"虚拟目录名称/test_abc.html" 配置IIS的方法如下:
http://urlrewriter.net/index.php/support/installation/windows-server-2003/ 里面的图9不准确,准确的为:
还有第八步中的”untick Verify that file exists.“要看仔细。否则重写HTML就无效。

4:备注

不要在"应用程序扩展"里“添加" .html的映射,否则正常的html将无法访问。
5.在vs2005中,传多个参数应该加&amp;在vs2003中,只用分号就好了
eg.

[html] view plaincopy

  1. <RewriterConfig>
  2. <Rules>
  3. <RewriterRule>
  4. <!--CreditNews BackGround update-->
  5. <LookFor>~NewsClsManage-(\d*)-(\d*).html</LookFor>
  6. <SendTo>~NewsClsManage.aspx?ClassID=$1&flag=$2</SendTo>
  7. </RewriterRule>
  8. </Rules>
  9. </RewriterConfig>

asp.net伪静态页面生成方法 (续二)

其实所谓的伪静态页面,就是指的URL重写,在ASP.NET中实现非常简单,下面是个简单的流程,高手就不用看了.
         首先你要在你的项目里引用两个DLL:
        其实所谓的伪静态页面,就是指的URL重写,在ASP.NET中实现非常简单,下面是个简单的流程,高手就不用看了.
         首先你要在你的项目里引用两个DLL:
               ActionlessForm.dll
               URLRewriter.dll
         真正实现重写的是 URLRewriter.dll   但是如果你要实现分页,那么必须使用这个ActionlessForm .dll
         首先在web.config里写

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
        <configSections>
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
    </configSections>

    <RewriterConfig>
        <Rules>
            <!-- Rules for Blog Content Displayer -->
                <RewriterRule>
                    <LookFor>~/read(.[0-9]*)\.html</LookFor>
                    <SendTo>~/WebForm1.aspx?UserID=$1< ndTo>
                </RewriterRule>
        </Rules>
    </RewriterConfig>
    <appSettings>
        <add key="dbType" value ="sql"></add>
        <add key="data" value="server=.;uid=sa;pwd=sa;database=pubs;Connect Timeout=30;"></add>
    </appSettings>
  <system.web>
    <httpHandlers>
        <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
     <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>

这样好像还不行,那是因为在IIS里面无法解析.html后缀名(具体我也不知道怎么叫...)
            然后这样操作:
                  右键点我的电脑-->管理-->展开‘服务和应用程序‘-->internet信息服务-->找到你共享的目录-->右键点击属性 -->点击‘配置‘-->
映射下面 -->找到.aspx的可执行文件路径 复制路径-->粘贴路径-->扩展名为".html"-->然后把检查文件是否存在的勾去掉 这样就可以了

时间: 2024-10-05 13:11:12

ASP.NET 实现伪静态网页方法的相关文章

ASP.NET URL伪静态重写实现方法

ASP.NET URL伪静态重写实现方法 首先说下,ASP.NET URL伪静态只是将~/a_1.html指向到了~/a.aspx?ID=1,但a.aspx还是真实存在的,你不用./a_1.html来访问,用./aaa.aspx?ID=1也是可以访问的,伪静态并会真的把你的a.aspx变为a.html 在web.config里设置如下: <?xml version="1.0" encoding="utf-8" ?> <!--overred-->

利用URLRewriter.dll 实现ASP.NET实现伪静态

大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的运行稳定和速度,坏处就是生成列表的时候会因为增加一条记录从而需要所有相关的列表进行重构,当然不排除有的公司已经攻克的这个问题,但对于大众程序员来说,他依旧是个问题,而且生成的化对于中小型网站也不一定会比动态的号,因为管理比较麻烦. 结构以上事实,然后伪静态技

OutputCache缓存优化asp.net代码 提高网页性能

对于asp.net编写的网页来说,使用缓存是一种非常重要也是很常用的优化技术,它可以大大减轻服务器的负载压力,优化这些网页的性能,在网与使用 .NET Framework 的任何其他功能相比,适当地使用缓存可以更好地提高站点的性能.同时,在网页加速显示上也起了很大的作用. OutputCache以声明的方式控制 ASP.NET 页或页中包含的用户控件的输出缓存策略. 语法: <%@ OutputCache Duration="#ofseconds"   Location=&quo

ASP.NET 表单验证方法与客户端(浏览器)服务器交互机制的故事

想到这个问题完全是一个意外吧,是在寻找另外一个问题答案的过程中,才对验证方法与浏览器服务器交互机制的关系有了清晰的认识. 先说下验证方法,验证方法分为前台验证和后台验证. 前台验证就是类似jQuery.Validate这类的插件,当然也可以我们自己写. 后台验证就是ASP.NET自带的验证控件,如RequiredFieldValidator. 记得初学.NET的时候,那会儿接触验证控件,也知道验证分为前台,后台.但是随着时间的推移,由于做的项目基本上都是公司内部使用的软件,比如OA.因为这种项目

ASP.NET网站伪静态下使用中文URL

首先解释一下,什么是中文URL呢?它并不是我们常见的把汉字编码为 %CF%EC 这种形式,而是在URL中直接使用汉字 这种形式目前还不是很多见.因为不同的浏览器处理起来可能会有所不同,不过据我测试,IE8和Firefox是完全支持的. 它的好处是可以使用链接地址看起来非常直观易懂!搜索引擎也支持. 先讲一下我的ASP.NET网站的伪静态,我的文件都是以.htm结尾的,实际上是动态的ASP.方法是:在后台将htm映射为aspx文件. 伪静态的规则,是在web.config文件中定义的. 形式一:

asp.net C# 获取网页源码的几种方式

1 方法 System.Net.WebClient aWebClient = new System.Net.WebClient(); aWebClient.Encoding = System.Text.Encoding.Default; Byte[] pageData = aWebClient.DownloadData(url); string nhtml = Encoding.GetEncoding("utf-8").GetString(pageData); 2方法 System.N

asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

无论你用什么语言,正则表达式的处理方法都是非常灵活.高效的,尤其是对某些字符串的抓取.过滤方面,更显其优势. 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的执行效率非常高,运行速度相当快.因此我在项目的开发中,通常把正则表达式作为处理问题的首选方法. 正则表达式的运用,在各种语言里都是相通的,也就是说,当你懂得在PHP中使用正则表达式,那么在任何一种语言中也能轻驾就熟. 这里给出两个asp.net实例. 1.asp.net正则表达式提取网址.标题.图片

Asp.net创建伪静态页面

下面是我研究了好几天和同事一起才研究出来的,原创. 1伪静态的定义: 伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息.或者还想运用动态脚本解决一些问题.不能用静态的方式来展示网站内容.但是这就损失了对搜索引擎的友好面.怎么样在两者之间找个中间方法呢,这就产生了伪静态技术.就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的. 2伪静态的实现: 2.1创建URL重写类URLRewiter.c

在Win7中IIS配置Asp.Net虚拟目录的方法及错误总结!

在Win7中IIS配置Asp.Net虚拟目录的方法总结! 一.右键[网站],点击[添加虚拟目录]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,因为这就跟一个网站差不多,不用考虑路径问题. 二.直接输入相应内容选择路径就行了,如果要指定[应用程序池],需要先建立一个新的[应用程序池],配置与网站差不多了. 三.运行后,如果出现以下错误:HTTP 错误 500.19 一般是web.config配置问题,很简单,找到以下内容 <system.webServer> <defaultDocum