伪静态(URL重写)

伪静态在可以使用数据库提供更强大的功能的同时,将很长很复杂的链接变成简短的静态链接形式,迎合搜索引擎方便搜索引擎蜘蛛(Spider)来抓取网页上的相关内容,提高页面被搜索引擎索引收录的比率,为用户提供更好的体验。伪静态搜索引擎和用户角度都有作用,在SEM建站中是很重要的一环。
1.3伪静态的特点(1)链接形式是静态;(2)功能内容是动态;(3)伪静态不会提高页面访问速度及与数据库交互速度;(4)开启伪静态会略微提高服务器资源占用。这一点如果在有限制的虚拟空间有些影响,但是在商业网站购买较为稳定网站空间的情况下可以忽略不计。
1.4 SEM与伪静态并非所有网站都要使用伪静态,因为伪静态不会影响网站的内容和存在。但是在SEM(搜索引擎营销)中,伪静态是必须的,而不是可选的。主要原因是:网站也是综合实力的比拼,做网站的技术含量并不太高,但是要出众则很难。而细节决定成败,在每个细节上都注意比其他网站更好一些,加起来就会有比较大的作用。
伪静态在搜索引擎和用户层面都有较好的作用,并且为链接设计提供可能。在域名或者链接中出现关键词是件不错的事情。
2伪静态的生成方式实现伪静态的方式主要有以下几种:
(1)框架伪静态,这种是非常简单而且也是非常便于识别的,它的原理比较简单,就是做一个静态的主框架页面,然后将动态的内容链接到副框架内。这个单从它的URL就可以看出眉目,如果整个网站的UI也都是一样的,那就一定是框架伪静态的。
(2)利用组件把asp的后辍显示为htm或html,这种方法的原理有一点难度,它主要是利用一个组件强制性地把asp文件的后辍显示为htm或html,对于用户来说,它是很难分辨的,因为显示的链接的确是以.htm结尾的,譬如:News.aspID--1一÷News.asp/1.html。
(3)利用FSO文件组件,调用数据库中的网页模板,并生成HTML的网页文件。
(4)利用重写ISAPI Rewrite重写技术,设计伪静态规则,实现网页重写转向功能,如设计New1234.html重写转向到网站真实的网页地址New.aspid=1234,从而实现网站的伪静态化。
3网站伪静态化的实现过程目前最推崇的网站静态化方法是采用ISAPI Rewrite重写技术实现网站伪静态。也就是利用服务器端,对请求的动态页面做改动,让浏览器认为访问的也是静态页面,此时,浏览器地址栏中显示的就是静态地址信息(不带问号)了。
ISAPI—Rewrite是一个dll组件,Rewrite是IIS里的一个模块。该筛选器的实现是通过正则表达式,将动态网页网址映射成为静态网址,比如将News.aspid=18通过Rewrite将其转换成News 18.html。映射的正则表达式是在httpd.ini文件里进行设置。
具体的实现方法阐述如下。
3.1下载一个ISAPI RewriteISAPI Rewrite的下载地址:http://www.helicontech.corn/download/,有精简版和完全版,一般精简版只能对服务器全局进行配置,而完整版可以对服务器上的各个网站/虚拟目录进行伪静态配置。对于一般的企业和个人网站来说,精简版就足够了。
下载完成后,可以找到安装包里的.msi的文件,安装即可。比如将安装程序安装到E:\ISAPI Rewrite目录,则还需要:
(1)将该目录及目录下的文件只读属性去除;(2)如果目录所在磁盘是NTFS格式,还需要在目录的安全选项中,必须将读写权限赋予everyone或Intemet匿名用户。
3.2设置IIS站点的“ISAPI筛选器”
打开Intemet信息服务,在默认站点鼠标右键,打开web站点属性,点击ISAPI筛选器选项卡,添加筛选器,这里的名称可以随意填写,路径指定到ISAPI Rewrite.dU所在目录,然后确定。
3.3编写动态网页并测试为验证URL重写的结果,编写一个动态测试页(带参数形式)New.asp。可以按照如下的代码编写:<%=Request.QueryString(”id”)%>,并将文件保存到网站主目录。然后,在浏览器中输入:
htt=p://127.0,0.1/New.aspid=123,结果就可以在网页上看到一行文字:“123”。看到这几个数字,则说明动态测试页编写成功。
3.4配置ISAPI Rewrite,编写重写规则配置ISAPI Rewrite重写规则的具体方法和步骤:
(1)打开ISAPI Rewrite的目录,把httpd.ini的只读属性去掉,打开编辑。
(2)现在是需要把New.aspid=123修改成类似New 123.html的路径,因此需要在httpd.ini中添加一句:RewriteRule/New_([0-9,a-z]*).html/New.aspid=$1(3)该语句可以把提交的地址http://127.0.0.1/New 10.htm映射到真正的地址http://127.0.0.1/New.aspid=10,保存后,即可进行URL重写的测试,在浏览器中输入网址:http://127.0.0.1/New 123.html,可以看到页面上显示的内容是“123”,结果表明伪静态配置成功。【3j3.5复杂的URL重写规则以上只是最为简单的URL重写规则,还可以根据网站建设的实际情况,设置更为复杂的重写规则。
比如目录类型的,翻页类型的重写规则等,举例如下。
(1)URL重写规则处理数据翻页,具体的规则写法:
New<%=Page%><%=type%>.html(注:page是翻页页数,type是数据类型)表现形式:New 1 18.html如果翻下一页,则为:New 2 18.html,继续下一页的循环,则是:
New 3 18.html,以此类推。
为实现该重写规则,需要在httpd.ini文件中增加以下代码:
RewriteRule/New_6d+)_6d+)\.html/New\.asp\page--$1&type=S2 IN,(2)若动态程序有多个参数需要传递,那么增加多个(\d+)即可,规则写法如下:
RewriteRule/New 6d+)_0d+)_6d+)\.html/New\.asp\page=$1&type--$2&type2=$3 IN,(3)若将http://www.mysite.corn/New.aspid=50#abc转换成静态的网页,因为#abc是程序在处理了ID=50这个变量生成静态页面之后,按锚点又做了一次页内链接,所以该映射方法为:
http://www.mysite.com/New.aspid---50#abc转换成http://www.mysite.corn/New 50.htm#abc重写规则为:
RewriteRule/New_6d+)\.htnl撑(\d+)/New\.asp\id=$1#$2[N,URL重写在程序上基本不需做什么变化,但要实现这个功能需要对IIS进行控制。因此网站建设是租用的服务器时,则需要先跟网站服务商联系。当然以上实现方法是针对ASP而言,若采用ASEnet就只需要直接将DLL程序集放到程序中的bin,再对Web.Config进行重写配置,即可实现URL重写功能【4】。
4利用伪静态功能完善网站通过以上方法实现URL重写,主要目的是利用伪静态功能来完善网站,最突出的有如下几个方面。
4.1 提高搜索引擎阅读和索引网站的能力搜索引擎是根据URL来抓取和索引网站的,很多动态数据库驱动的网站具有一些具有URL参数的动态URL,诸如像‘'www.mysite.com/UserInfo.aspxID=l”中的ID参数,搜索引擎不能够完全索引该网站。
通过修改网址成为像‘'www.mysite.com/Userlnfo/1.aspx”之类的形式,可以帮助搜索引擎更容易地索引到该网站。
搜索引擎通常还通过网站URL中的关键字来判断网页的相关性。如果希望在不用修改网站目录架构的情况下,可以通过修改URL以更好地反映网页的内容。了解搜索引擎的工作原理,然后根据它来优化网站,让网站更好地被搜索引擎收录。
4.2提高网站维护的灵活性一旦修改了站点结构,却不用要求用户修改他们的书签,也不用要求其他网站改变指向你网站的友情链接。比如在网站中修改一个网页的名称,或者修改存储网页的文件夹结构,将会给那些已经收藏了该网页的用户和某些网站对该网站的友情链接带来混乱。一个可行的解决方案就是使用URL重写来透明地把用户重定向到正确的网页。
例如,若有网址www.mysite.corn/main/sitecontacts.htrn,用户可能已经在书签中收藏该地址,若想修改它到WWW.mysite.corn/contacts.htm,可以简单地建一个重定向规则。当用户在浏览器中输入www.mysite.com/main/sitecontacts。htm时,被重定向到www.mysite.corn/contacts.htm页面。
4.3提高网站安全性网址可以为黑客提供一些攻击的线索,因为它们通常会暴露网站的内部工作机制。例如,通过使用“.asp”或".aspx”作为后缀,则已经暴露出正在使用ASP或ASRNET框架。这样,一个潜在的黑客就掌握了一条如何攻击该网站的线索。URL重写可以将扩展名改为“.x”或".mysite”,从而可以让攻击者去猜测该网站到底用的是什么框架。
另一个安全担心是,在URL中显示网站的站点目录和URL参数,通常会让黑客获得重要信息来进行前端攻击。通过这个信息,黑客可以通过修改参数,或直接访问相关目录,从而暗中找出该网站可能存在的一个安全漏洞。URL重写帮助网站隐藏这些信息不被黑客所发现。
本文由http://siruichina.com/New_con.asp?id=846&kind=&kindnext=49编辑(转载请注明)

原文地址:https://www.cnblogs.com/mingjian/p/3427386.html