`
阿尔萨斯
  • 浏览: 4107053 次
社区版块
存档分类
最新评论

SEO中的正则表达式(ISAPI Rewrite)

 
阅读更多

目前国内主流的网站内容管理系统中,有大部分是可以将动态的PHPASPASPX等文档直接生成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重写组件,其使用过程和apachemod_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文件来解释一下正则表达式的基本写法。

我们的任务是将URLhttp://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]+),只要灵活的掌握这两点,并且按照上面的公式去套用的话,正则表达式并不是一件难办的事。

***************************************************************
分享到:
评论

相关推荐

    ISAPI_Rewrite3_0056.msi

    ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎,其功能类似于Apache’s mod_Rewrite。目前最新的版本是3.0,有Full和Lite两种发行方式,前者可以免费使用45天,而后者是完全免费试用但是限制了一部分功能。...

    ISAPI_Rewrite2.9版(有注册码)

     和其他许多问题是可以解决的力量,正则表达式引擎内置的ISAPI_Rewrite 。  ISAPI_Rewrite有两个不同版本:  ISAPI_Rewrite全  这是完整版的ISAPI_Rewrite 。它具有以下特点:  正则表达式的网址重写引擎。...

    ISAPI Rewrite 3 (IIS重写URL插件)

     和其他许多问题是可以解决的力量,正则表达式引擎内置的ISAPI_Rewrite 。  ISAPI_Rewrite有两个不同版本:  ISAPI_Rewrite全  这是完整版的ISAPI_Rewrite 。它具有以下特点:  正则表达式的网址重写引擎。...

    在IIS SQL Server中利用ISAPI ReWrite防SQL注入攻击.pdf

    在IIS SQL Server中利用ISAPI ReWrite防SQL注入攻击.pdf

    破解版ISAPI_Rewrite3_full

    ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。经过过滤的url更符合友好url规则,更加容易被搜索引擎所接受, 是一种SEO优化有力的方法。 ISAPI_Rewrite 有两个不同的版权: ISAPI_Rewrite完全版: ...

    ISAPI_Rewrite_full v2.9 完整注册版

    ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。经过过滤的url更符合友好url规则,更加容易被搜索引擎所接受, 是一种SEO优化有力的方法。 它非常类似于Apache's mod_Rewrite,但它是专为IIS设计的。 也...

    IIS配置支持伪静态 ISAPI Rewrite

    IIS配置支持伪静态 ISAPI RewriteIIS配置支持伪静态 ISAPI Rewrite

    ISAPI_Rewrite 2.9 full 破解版

    ISAPI_Rewrite是一个强大的基于正则表达式的URL处理引擎。经过过滤的url更符合友好url规则,更加容易被搜索引擎所接受, 是一种SEO优化有力的方法。 ISAPI_Rewrite 有两个不同的版权: ISAPI_Rewrite完全版: ...

    isapi rewrite 完整版下载

    isapi rewrite 伪静态组件完整版下载

    IIS伪静态组件(支持多站点) ISAPI_Rewrite3.1_full0073和0087双版本完全DLL破解版

    2、在将Rewrite破解文件夹中的dll文件覆盖到程序安装目录下ISAPI_Rewrite.dll和ISAPI_RewriteSnapin.dll,如果提示在使用则把要覆盖的dll文件重命名在复制即可; 3、打开安装目录下的httpd.conf文件,在里面输入...

    ISAPI_Rewrite3完美破解版

    经测试过的ISAPI_Rewrite组件,可正常使用,已正常网站伪静态化及反向代理。

    ISAPI REWRITE 免费版

    ISAPI REWRITE 免费版。ISAPI REWRITE,URL重写,IIS伪静态,网站SEO必备工具。

    isapi_rewrite3.1中文说明

    isapi_rewrite3.1中文说明 软件介绍 安装和反安装 使用ISAPI_Rewrite正式指令 示例 故障处理 后记

    ISAPI_Rewrite3_full完全版及绿色版

    2、在将Rewrite破解文件夹中的dll文件覆盖到程序安装目录下ISAPI_Rewrite.dll和ISAPI_RewriteSnapin.dll,如果提示在使用则把要覆盖的dll文件重命名在复制即可; 3、打开安装目录下的httpd.conf文件,在里面输入...

    IIS7 windows2008 重写模块ISAPI_Rewrite3.msi

    ISAPI_Rewrite3_0104_x64.msi IIS7 windows2008 重写模块ISAPI_Rewrite3.msi

    ISAPI_Rewrite 3.1 教程中文版

    第一章:软件介绍 ISAPI_Rewrite 是一款适用于IIS的功能强大的基于正则表达式的URL处理模块。它兼容Apache的mod_rewrite的语法,从而使仅仅复制.htaccess文件就把配置从appach移植到IIS中或者从IIS移值到appach中...

    ISAPI_Rewrite3【伪静态】插件

    2、在将Rewrite破解文件夹中的dll文件覆盖到程序安装目录下ISAPI_Rewrite.dll和ISAPI_RewriteSnapin.dll,如果提示在使用则把要覆盖的dll文件重命名在复制即可; 3、打开安装目录下的httpd.conf文件,在里面输入...

    ISAPI_Rewrite3_0087注册码/ISAPI_Rewrite3_0087完美破解下载

    之前使用的ISAPI_Rewrite3_0082.msi访问比较大的时候会引起iis6应用程序池挂起,IIS自动停止,iis自动关闭,iis应用程序池无法开启,现在用ISAPI_Rewrite3_0087.msi能很好的解决这个问题。为大家献上最新ISAPI_...

    ISAPI_Rewrite 2.9 full 完整版 / ISAPI Rewrite / 伪静态组件

    找了很久的一个支持伪静态的组件,内附注册码,免去注册烦恼 只发精品,经过测试可用。

Global site tag (gtag.js) - Google Analytics