使用rewrite在iis上设置规则来实现伪静态,这样在vs中开发的时候将无法调试,必须要是用iis发布才不会造成找不到文件的错误,当然,肯定还有其他的方法来实现伪静态的,不用再iis中设置任何的东西,只需要一个。net的组件和设置一下webconfig文件就ok了,来看一下,这东西,我用的次数很少,每次用都怕忘记,所以记录下来,下次忘记的话也不用Google啦 这回的准备工作,你必须去网上download一个URLRewriter.dll组件了,网上貌似有这个类库的源代码,当然里面也有编译好的dll文件,只需要把dll文件coty到自己站点的Bin下面,然后在网站上右键,添加引用,浏览选择这个dll文件即可。 下面就需要在webconfig里面配置一番了 1、在Web.Config的<system.web>和</system.web>添加以下节点: 2、在Web.Config的<configuration>和</configuration>添加以下节点:
设置完以上两个步骤,就基本可以运行了,其中<RewriterRule/>标签里面就是重写的一个模块,<LookFor/>里面的是重写后的地址,而<SendTo/>则是原地址。大家应该注意到了我写了2组<RewriterRule/>,其中第一组的是给单参数的地址用的,而另一组是给多参数动态文件用的。 相信大家如果用过在iis里面配置伪静态规则的话,那在webconfig里面配置规则自然不在话下,如果不会的话,就去找一些正则表达式的书看一下,不需要很精通就行 当然此方法有一些注意事项:
五个页面 About.aspx <form id="form1" runat="server"> <div> 这是Aboutl页,url是About.aspx还是About.html?<br/> <br/> <br/> <a href="Default.html" mce_href="Default.html">主页</a> <br /> <br /> <a href ="List_p1.html">List页传page参数</a> <br /> <br /> <a href ="Detial_1.html">Detial页传值Id参数</a> <br /> <br /> <a href ="About_jianjie.html">About页传值title参数</a> <br /> <br /> <a href ="Double_t1_p1.html">Double页传值type和page参数</a> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </div> </form> cs代码: //About页面 public partial class About : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string title = Request["title"].ToString(); TextBox1.Text = "name为" + title; } } //Detial页面 public partial class Detial : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string Id = Request["Id"].ToString(); TextBox1.Text = "Id号为" + Id; } } //Double.aspx页面 public partial class Double : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string type = Request["type"].ToString(); string page = Request["page"].ToString(); TextBox1.Text = "type为:" + type + "page为" + page; } } //List.aspx页面 public partial class List : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string page = Request["page"].ToString(); TextBox1.Text = "页数为" + page; } }
|
|