其实一直有这个疑问,为什么人家.net 写的网站为什么后缀能变成.html来显示?今天终于明白了,答案:UrlRewrite
步骤:添加URLRewriter.dll ,网上自己下载,还有一个ActionlessForm.dll,是处理post数据的。然后在web.config中配置页面信息,具体如下:
1、往<configuration>节点中添加
<configSections><section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/></configSections>;
2、在<configuration>下的<system.web>节点中添加
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>
3、开始在<configuration>下写Rewriter配置信息,url信息用正则表达式表示
<RewriterConfig>
<Rules>
<!-- 规则,可以使用正则表达式 -->
<RewriterRule>
<LookFor>~/index.html</LookFor>
<SendTo>~/Index.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/News.html</LookFor>
<SendTo>~/News.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/NewsShow_(\d{1,4})\.html</LookFor>
<SendTo>~/NewsShow.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/wjProduct-(\d{1,6})-(\d{1,6})\.html</LookFor>
<SendTo>~/wjProduct.aspx?page=$1&Menu_ID=$2</SendTo> //第一个参数用$1;第二个参数用$2... 参数中间加&
</RewriterRule>
。。。
。。。
</Rules>
</RewriterConfig>
4、接下来就是每个url的写法了,比如你在index.aspx页面的主页为index.html ,但是真正发送请求出去的是index.aspx,其他也一样道理。再在项目的属性中设置启动为index.html;这样一运行就执行了index.html。
注意:这样重写可能会致使有些路径错乱,如图片路径。毕竟你是在项目都弄完后才来rewrite的,所以要小心。