目前国内主流的网站内容管理系统中,有大部分是可以将动态的PHP、ASP、ASPX等文档直接生成HTML的。但是由于有些网站的内容较多,因此如果单纯的采取直接生成的方式,将会占用大量的服务器资源。在这种情况下,我们就可以使用“伪静态”的方式,对网站URL静态化,以达到SEO的目的。
伪静态所需要的工具
如果网站使用的是独立服务器的话,那么我们就可以随意的对网站进行伪静态操作了,假如网站使用的服务器是Apache服务器,那么它自带了mod_rewrite来实现URL的重写功能(URL Rewrite)。但是如果使用的是windows服务器的话,IIS却没有自带的伪静态工具进行URL重写,遇到这样的情况时,我们就需要使用第三方插件来解决这个问题了。
目前在IIS上使用的比较多的URL重写工具是“ISAPI Rewrite” ISAPI Rewrite组件有免费版以及商业版,免费版只支持全局httpd.ini配置,不能对每个站点进行单独设置,除非通过加载不同的dll来实现。而商业版支持用户自定义httpd.ini文件,只要放在站点根目录下就能生效。这个大大方便了用户自己修改URL重写规则。
ISAPI Rewrite是一款基于正则表达式的,由C/C++编译的URL重写组件,其使用过程和apache的mod_rewrite基本相同。目前最新版本的ISAPI Rewrite可以支持Apache的 .htaccess文件来在IIS中使用 mod_rewrite。
ISAPI Rewrite的安装
ISAPI Rewrite有两种不同的安装方式,一种是安装包,另外一种是压缩包。如果您下载的是安装包,那么直接按照安装步骤进行安装即可。在这里重点阐述一下压缩包的安装方法。
首先,我们需要下载一个ISAPI Rewrite3的压缩包,下载地址如下:
http://www.helicontech.com/download-isapi_rewrite3.htm
|
在解压到任意文件夹后,我们需要手动指向其ISAPI服务。
选中ISAPI筛选器,点击“添加”按钮,找到“ISAPI_Rewrite3.dll”文件,并且选中。
这里需要注意的一点是:ISAPI Rewrite3.Dll文件所属的文件夹一定要给予IIS_WGP组的读写权限,否则网站就会报错,导致“Service Unavailable”,应用程序池遇到错误而停止。
安装成功后,我们就需要对刚才安装的组建进行测试了。测试方法如下:
首先,我们需要制作一个简单的测试网页,URL为:http://127.0.0.1/new.asp?id=1234
然后,我们可以在ISAPI Rewritewe文件夹中找到httpd.ini文件,把它的只读属性去掉,打开编辑。例如我们现在需要将new.asp?id=1234修改为new/1234.html,那么我们可以在httpd.ini文件中,加入如下代码:
RewriteRule /news/(\d+)\.html /news\.asp\?id=$1 [N,I]
|
保存之后,我们在浏览器输入http://127.0.0.1/new/1234.html,如果可以正常打开的话,那么我们的ISAPI Rewrite就安装成功了。如果不能正常打开,请检查文件夹权限、ISAPI的指向、优先级等内容。
1.1.3 ISAPI Rewrite的高级使用
为了减少服务器的资源,我们在很多时候会对我们网站的文件进行防盗链处理。而ISAPI Rewrite就可以做到这一点。
用ISAPI Rewrite作为防盗链工具的基本原理是:判断Referer是否来自本地主机或在信任列表中的域名,如果不是的话,就产生一个新的重写计划,并将其转向到某个放置盗链提示文件上。
下面的代码是httpd.ini的防盗链简单代码,仅供各位读者参考使用。
# ISAPI Rewrite2.0版本
RewriteCond Host: ^ (.+)$
RewriteCond Referer: ^ (?!http://\\1.*).*$
RewriteCond Referer: ^ (?!http://(.*\.google\.com|*\.baidu\.com|*\.123\.com).*).*$
RewriteRule ^.*\.(?:gif|jpg|png|exe|rar|zip)$ /daolian.gif [I,O,N]
# ISAPI Rewrite3.0版本
RewriteCond %{HTTP:Host} ^ (.+)$
RewriteCond %{HTTP:Referer} ^ (?!http://\\1.*).*$
RewriteCond %{HTTP:Referer} ^ (?!http://(.*\.google\.com|*\.baidu\.com|*\.123\.com).*).*$
RewriteRule ^.*\.(?:gif|jpg|png|exe|rar|zip)$ /daolian.gif [NC,N,O]
|
.*\.google\.com和*\.baidu\.com代表如果链接的网站是在百度或者Google搜索引擎的话,那么这样的连接是被允许的。其中的“*”代表百度或者Google下的任何二级域名。而后面的*\.123\.com是指本网站,这里各位读者可以更换成为自己的域名。当然,在这里还可以添加更多的被允许名单,为了各位读者使用方便,在本书光盘中,附带了以上这段防盗链代码,只需要添加到httpd.ini文件中即可。
本文件光盘路径:X:\正则表达式\防盗链程序代码.txt
1.1.4 正则表达式
由于ISAPI Rewrite是使用正则表达式规则的伪静态组建,因此我们需要对正则表达式有一个简单的了解。
所谓正则表达式,即为使用某种公式使得一类字符串被固定规则所替换。简单来说,ISAPI Rewrite中的正则表达式就是帮助我们将形如“news.asp?id=1234”这样的网址伪静态化为“news_1234.html”的规则。
我们用一个简单的httpd.ini文件来解释一下正则表达式的基本写法。
我们的任务是将URL:http://www.yourdomain.com/news.asp? class=seo&p=150变换成为http://www.yourdomain.com/seo/150这样的URL。
在修改httpd.ini文件之前,首先我们需要了解几个最简单的正则表达式
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
|
我们在这里需要替换的有两个参数,一是class=?,二是p=?,我们可以看到,class是一个栏目的名称,其元素是不固定的,而p是文章的ID,也就是说是由数字构成的。因此,我们需要在httpd.ini中加入如下规则,以达到伪静态的目的。
RewriteRule ^(.*)/seo/([0-9]+)$ textarea/news\.asp\?class=seo&p=$1 [N,I]
|
在这个正则表达式中,前面的(.*)是一个通配符,代表在/seo之前的所有内容不变,不需要伪静态。/seo/部分替代了/news\.asp\?class=seo&p=这一部分。“/”是转义符,([0-9]+)表示数字字符。于是就实现了伪静态的过程。
当然,如果有更多的参数,我们也可以使用简单的正则表达式来解决。例如上面的class部分如果是可变的,那么我们就在httpd.ini文件中,加上一下的这段规则。
RewriteRule ^(.*)/([a-z0-9\_]+)/([0-9]+)$ textarea/news\.asp\?class=&p=
|
这里使用([a-z0-9\_]+)部分来代表可变的class部分。
实际上在ISAPI Rewrite中使用最多的两个正则表达式就是代表匹配字幕和数字的([a-z0-9\_]+)以及代表数字的([0-9]+),只要灵活的掌握这两点,并且按照上面的公式去套用的话,正则表达式并不是一件难办的事。
***************************************************************
附:SEO培训通知:
亲爱的子信立远SEO学员和所有对SEO培训感兴趣的朋友:
您好!
首先,我们很抱歉这样的一封邮件打扰了您正常的学习和工作。但是事件紧急,为了尽快的通知所有对SEO感兴趣的朋友,我们不得不采取这样的非正常手段。
2009年5月下旬,子信立远将开始第十六期的SEO培训服务,和往期不同的是,这一期的SEO培训分为两个阶段,第一阶段是为期一个月的SEO基础知识培训阶段,而第二阶段是为期一个月的带薪SEO实习阶段。在第二阶段中,子信立远将为每位同学分配一个实际的SEO任务,并在实习结束后支付不少于1000元的带薪补偿费!另外,在学员学习结束后,第一次将直接分配SEO项目一个(总价值不少于3000元)。另外,如果学员尚未参加工作,将会直接把学员的资料配送给与子信立远有长期合作的近百家中小型企业中。
这是子信立远开设SEO培训班以来,第一次的就业培训!由于只有子信立远将侧重于其他业务,因此本期的SEO培训也将是最后一期就业培训。而这次的培训费用,仅仅需要RMB750元!
希望有学习意向的朋友尽快与我们取得联系,名额已经不多,请各位务必尽快!
联系QQ:401679563
2009年5月19日
分享到:
相关推荐
在Web开发领域,为了提高用户体验和搜索引擎优化(SEO),伪静态技术被广泛应用于网站开发中。通过将动态URL转换为静态URL的形式,不仅可以提升网站的美观度,还可以改善搜索引擎的抓取效果。本文将详细介绍如何在...
2. **正则表达式**:ISAPI_Rewrite的规则配置基于正则表达式,这是一种强大的文本匹配模式,可以灵活地匹配各种URL模式。通过学习和掌握正则表达式,你可以编写出复杂的重写规则,实现诸如路径美化、隐藏特定参数、...
此外,ISAPI_Rewrite3还支持正则表达式,使得规则的编写更加灵活和强大。开发者可以根据特定模式匹配和转换URL,例如,隐藏脚本参数、实现URL路由、处理错误页面等。它还可以与IIS的其他模块协同工作,如ASP.NET、...
1. **URL重写**:ISAPI_Rewrite3允许开发者使用正则表达式定义规则,将不友好的URL转换为更易于理解和搜索引擎友好的形式,从而提高网站的用户体验和SEO排名。 2. **URL伪装**:隐藏实际的文件路径和服务器内部结构...
这些规则通常以正则表达式的形式编写,可以将不友好的动态URL转换为静态或者更易读的URL,反之亦然。这种技术被称为“伪静态”,因为它使动态网页在外观上表现得像静态页面一样。 二、伪静态技术的重要性: 1. SEO...
ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎,其功能类似于Apache’s mod_Rewrite。目前最新的版本是3.0,有Full和Lite两种发行方式,前者可以免费使用45天,而后者是完全免费试用但是限制了一部分功能。...
ISAPI_REWRITE通过配置规则来实现URL重写,这些规则可以写在ISAPI_Rewrite的配置文件(通常是.htaccess文件)中。规则通常基于正则表达式,使得开发者能够根据特定模式对URL进行匹配和替换。例如,你可以将动态的...
3. **条件匹配和变量**:ISAPI_Rewrite3支持正则表达式,可以通过`RewriteCond`设置条件,结合`%{HTTP_HOST}`、`%{REQUEST_URI}`等变量进行复杂匹配。 4. **其他指令**:还有其他指令如`RewriteBase`用来设置基础...
ISAPI_Rewrite是一款专为IIS设计的URL重写工具,它采用正则表达式实现强大的URL处理功能,兼容Apache的mod_rewrite语法,便于在Apache和IIS之间迁移配置。这款软件的核心特点包括: 1. **兼容性与移植性**:ISAPI_...
ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。经过过滤的url更符合友好url规则,更加容易被搜索引擎所接受, 是一种SEO优化有力的方法。 ISAPI_Rewrite 有两个不同的版权: ISAPI_Rewrite完全版: ...
ISAPI_Rewrite的工作方式类似于Apache服务器上的mod_rewrite模块,允许开发者使用正则表达式来定义重写规则。这些规则通常写在.htaccess配置文件中,对于IIS来说则是.webconfig文件。通过这种方式,ISAPI_Rewrite...
ISAPI_Rewrite提供了一个强大的规则引擎,允许开发者使用正则表达式来定义URL重写规则。这些规则通常被写入到一个名为`.htaccess`的配置文件中,尽管在IIS环境下,可能需要将文件命名为`web.config`或者直接在IIS...
ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。经过过滤的url更符合友好url规则,更加容易被搜索引擎所接受, 是一种SEO优化有力的方法。 它非常类似于Apache's mod_Rewrite,但它是专为IIS设计的。 也...
ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。经过过滤的url更符合友好url规则,更加容易被搜索引擎所接受, 是一种SEO优化有力的方法。 ISAPI_Rewrite 有两个不同的版权: ISAPI_Rewrite完全版: ...
6. `RegexTest.exe`:正则表达式测试工具,可以帮助用户测试和调试重写规则中的正则表达式。 7. `ISAPI_RewriteSyntaxConverter.exe`:这是一个语法转换工具,可能用于将其他重写工具(如Apache mod_rewrite)的...
3. **规则引擎**:ISAPI_Rewrite采用强大的规则引擎,允许使用正则表达式编写重写规则。这些规则可以应用于整个网站或特定的目录,实现高度灵活的控制。 4. **安全与性能**:ISAPI_Rewrite还提供了安全特性,如URL...
为了充分利用ISAPI_Rewrite3_0075,管理员需要了解其配置文件`.htaccess`的语法,包括正则表达式、重写规则以及条件判断等。此外,实时监控和调试也是确保系统稳定运行的关键,ISAPI_Rewrite3提供了日志记录和错误...
2. **正则表达式支持**:ISAPI_Rewrite3使用Perl兼容正则表达式(PCRE)进行匹配和替换,提供了强大的规则定义能力。开发者可以通过正则表达式灵活控制URL的转换逻辑。 3. **多环境支持**:ISAPI_Rewrite3不仅适用...
在ISAPI_Rewrite3_Lite中,规则通常写在.htaccess或.webconfig文件中,这些文件包含了正则表达式和重写条件,用于定义URL转换的具体逻辑。例如,一个简单的规则可能将"products.php?id=123"重写为"products/123"。这...
规则通常基于正则表达式,需要一定的编程基础。 4. 在IIS管理界面中,将ISAPI_Rewrite 添加到站点的ISAPI筛选器和HTTP处理程序映射中。 5. 测试重写规则,确保其按预期工作。 在实际应用中,ISAPI_Rewrite 还支持...