前段时间看到一个网站的连接是这个样子的 ...../C_181.aspx 。下意识的认为着一定是url重写。但是具体怎么实现不知道哦。于是去google了下 url重写 找到很多,不过大多都是使用下载ms的URLRewrite.dll,我看了几个人的blog后没有明白。
具体的说就是没又明白怎么把 比如show.aspx?id=10转换成 show_10.aspx,今天突然想到我做新闻列表的时候绑定新闻链接的时候都是这样做的
- <asp:TemplateField HeaderText="Title">
- <ItemTemplate>
- <a href="show.aspx?id=<%# Eval("ID")%>"><%# Eval("Title")%></a>
- </ItemTemplate>
- </asp:TemplateField>
于是想到 我当然可以如下这么做了。。
-
- <asp:TemplateField HeaderText="Title">
- <ItemTemplate>
- <a href="show_<%# Eval("ID")%>aspx"><%# Eval("Title")%></a>
- </ItemTemplate>
- </asp:TemplateField>
这样 就可以 把url转化为 show_$.aspx的形式了。。那么下面要做的就是url重写了。。。
1.下载ms的URLRewrite.dll,放到你的bin下
2.在web.config里设置如下:
- <configSections>
- <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
- </configSections>
- <RewriterConfig>
- <Rules>
- <RewriterRule>
- <LookFor>~/show_(/d+)/.aspx</LookFor>
- <SendTo>~/show.aspx?id=$1</SendTo>
- </RewriterRule>
- </Rules>
- </RewriterConfig>
- <system.web>
- <httpHandlers>
- <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
- </httpHandlers>
- </system.web>
最后一部就是在show.aspx的cs页面处理了。。。这样就算完成了url重写。。