核心提示:在看这篇文章之前我想首先跟大家介绍下什么是URL重写?URL重写有什么好处呢?就像我们买东西一样都不知道干什么用当然就不可能会去购买的。URL重写是截取传入WEB请求并自动将请求重定向到其它URL的过程。比如浏览器发送请求URL地址为“Item/1.aspx”,服务器会自动将请求定向为“Item.aspx?id=1”。那么URL重写有哪些优点呢?
在看这篇文章之前我想首先跟大家介绍下什么是URL重写?URL重写有什么好处呢?就像我们买东西一样都不知道干什么用当然就不可能会去购买的。URL重写是截取传入WEB请求并自动将请求重定向到其它URL的过程。比如浏览器发送请求URL地址为“Item/1.aspx”,服务器会自动将请求定向为“Item.aspx?id=1”。那么URL重写有哪些优点呢?
1、可以隐藏实际记录,更好的提高安全性;
2、更方面用户记住和输入URL地址;
3、更有利于搜索引擎的收录。
动易SiteFactory2.5新增加的URL重写的功能并没有在后台操作界面中直接体现出来。要是你不是很细心经常性的关注动易SiteFactory的新功能特性,甚至你可能不知道有这个新功能。好了,下面我们开始一步一步地学习如何配置和使用URL重写这功能。
先看默认情况下访问一个内容页的URL地址:http://localhost/SiteFactory3.0/Item/10.aspx
URL结尾部分是:Item/60.aspx,其实这个URL实际访问的地址就是Item.aspx?id=60。
Item.aspx?id=60也可以重写成下面两个URL地址:
1、 http://localhost/SiteFactory3.0/Content/10.aspx
2、 http://localhost/SiteFactory3.0/Content/10.html
现在应该知道URL重新是怎么一回事了吧!那就是改变实际地址的显示形式。下一步就是怎么配置和修改?要注意哪些问题呢?
打开安装SiteFactory3.0的根目录下的Config/UrlRewriteSettings.config文件,看到如下图所示:
图1
UrlRewriteSettings.config文件中有很多个<add>节点。里面已经提供了所有SiteFactory各个不同URL配置的类型。比如:<add>节点中name属性为RewriteItemd节点,它是用于信息内容页的URL配置。以下是每个<add>节点对应的配置如下:
Name属性名 配置的类型
RewriteItemd 信息内容页的URL配置
RewriteItemPage 信息内容页分页的URL配置
RewritePrint 打印页的URL配置
RewritePrintPage 打印页分页的URL配置
RewriteCategory 节点页的URL配置
RewriteIndexCategory 首页的URL配置
RewriteCategoryPage 节点分页的URL配置
RewriteSpecial 专题页的URL配置
RewriteSpecialPage 专题页分页的URL配置
RewriteSpecialCategory 专题类别的URL配置
RewriteSpecialCategoryPage 专题类别分页的URL配置
RewriteSpecialCategoryIndex 专题类别首页的URL配置
RewriteSpecialCategoryIndexPage 专题类别首页分页的URL配置
我们再回到图1中,图中有两个红色框。
第一个框中内容为:
virtualUrl="^~/Item/(\d+).aspx" 这个就是在浏览器中输入的URL。
第二个框中内容为:
destinati 就是实际访问的地址。
图2所呈现的URL只要修改virtualUrl属性值就可以了(注意整个文件只要修改<add>节点里的virtualUrl属性值就可以了,其它的请不要做任何修改),修改virtualUrl属性值也是有讲究的,注意不要改动Item 前面的“^~/”,还有“(\d+)”,“^~/”可以获得应用程序的根目录, “(\d+)” 可以获得访问实际地址的ID参数值,也就是信息ID。
图2所示的URL就是把virtualUrl属性值修改成:virtualUrl=" ^~/Content/(\d+).aspx"。图3所示的URL:virtualUrl=" ^~/Content/(\d+).Html"。
注意:改成图3所示的URL,还的配置下IIS,因为后缀名修改了,IIS对这个URL是不会交由ASP.NET的aspnet_isapi.dll处理的,所以程序部署到IIS的时候可能会出现404错误,但是你可以为你的站点添加一个通配符,添加扩展名的映射:
可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
请求路径:*
名称:随意
详细以IIS7为例子:
图2
图3
图4
图5