URL重写简单使用说明
首先跟大家介绍下什么是URL重写:URL重写是截取传入WEB请求并自动将请求重定向到其它URL的过程。比如浏览器发送请求“Item/1.aspx”,服务器自动将请求定向为“Item.aspx?id=1”。
那它有什么优点:
可以缩短URL,隐藏实际记录经提高安全性;
易于用户记忆和键入;
易于被搜索引擎收录。
在SiteFactory2.5中新增加的这个URL重写的功能,可能大家在使用的时候并没有发现此功能,这个功能在后台操作界面中没有直接的体现出来,而是写在的程序里的。那么我们要怎么使用这个功能呢?接下来一步一步跟大家讲述下。
首先来看默认情况下访问一个内容页的RUL:
图1
我们看图1的URL结尾部分是:Item/60.aspx,这个URL实际访问的地址就是Item.aspx?id=60。下面两个是改过之后的RUL:
图2
图3
图2和图3所显示的URL都能和图1的URL访问的实际地址是一样的,全都是Item.aspx?id=60,都很好的隐藏了实际地址。
这里到底改变了什么,让URL改成这样呢?打开安装SiteFactory的根目录下的Config/UrlRewriteSettings.config文件,用工具打开它,我们可以看到如下内容:
图4
UrlRewriteSettings.config文件中有很多个 节点。里面已经提供了所有SiteFactory各个不同URL配置的类型了。比如: 节点中name属性为RewriteItemd节点,它是用于信息内容页的URL配置。具体每个 节点对应的配置如下:
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
我们再回到图4中,图中有两个红色框。
第一个框中内容为:
virtualUrl="^~/Item/(d+).aspx" 这个就是在浏览器中输入的URL。
第二个框中内容为:
destinati 就是实际访问的地址。
图2所呈现的URL只要修改virtualUrl属性值就可以了(注意整个文件只要修改
节点里的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:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll
请求路径:*
名称:随意
详细以IIS7为例子:
图5
然后双击"处理程序映射":
图6
然后再在IIS7中”添加通配符映射”:
图7
点击”确定”:
图8
点击”是”:
图9
这样你的站点的URL重写就配置好了。