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

news/2024/4/27 19:16:36/文章来源:https://caizhiyuan.blog.csdn.net/article/details/4201813

目前国内主流的网站内容管理系统中,有大部分是可以将动态的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]+),只要灵活的掌握这两点,并且按照上面的公式去套用的话,正则表达式并不是一件难办的事。

***************************************************************
附:SEO培训通知:
亲爱的子信立远SEO学员和所有对SEO培训感兴趣的朋友:
您好!
首先,我们很抱歉这样的一封邮件打扰了您正常的学习和工作。但是事件紧急,为了尽快的通知所有对SEO感兴趣的朋友,我们不得不采取这样的非正常手段。
2009年5月下旬,子信立远将开始第十六期的SEO培训服务,和往期不同的是,这一期的SEO培训分为两个阶段,第一阶段是为期一个月的SEO基础知识培训阶段,而第二阶段是为期一个月的带薪SEO实习阶段。在第二阶段中,子信立远将为每位同学分配一个实际的SEO任务,并在实习结束后支付不少于1000元的带薪补偿费!另外,在学员学习结束后,第一次将直接分配SEO项目一个(总价值不少于3000元)。另外,如果学员尚未参加工作,将会直接把学员的资料配送给与子信立远有长期合作的近百家中小型企业中。
这是子信立远开设SEO培训班以来,第一次的就业培训!由于只有子信立远将侧重于其他业务,因此本期的SEO培训也将是最后一期就业培训。而这次的培训费用,仅仅需要RMB750元!
希望有学习意向的朋友尽快与我们取得联系,名额已经不多,请各位务必尽快!
子信立远官方网站:http://www.zeacens.com
联系QQ:401679563
MSN:zijingbaby@hotmail.com
2009年5月19日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_810937.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防不胜防,你可能访问了一个被克隆的网站

我们来看一下以下这2个网址:http://www.lcbc.com.cn、http://www.baiud.com,在此之前大家有没有发现有什么异样?仔细一看,大家会发现,工商银行的官网域名中的i被替换成了l,百度官网的d和u被调换了位置。很久…

大型网站技术架构

架构演变第一步:物理分离webserver和数据库 最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管…

快盘做网站服务器,快盘云服务器地址

快盘云服务器地址 内容精选换一换切换操作系统是为您的云服务器重新切换一个系统盘。切换完成后云服务器的系统盘ID会发生改变,并删除原有系统盘。如果云服务器当前使用的操作系统不能满足业务需求(如软件要求的操作系统版本较高),您可以选择切换云服务器…

用java做一个校园网站,基于jsp的校园网站-JavaEE实现校园网站 - java项目源码

基于jspservletpojomysql实现一个javaee/javaweb的校园网站, 该项目可用各类java课程设计大作业中, 校园网站的系统架构分为前后台两部分, 最终实现在线上进行校园网站各项功能,实现了诸如用户管理, 登录注册, 权限管理等功能, 并实现对各类校园网站相关的实体进行管理。该校园…

网站iis php发布网站吗,iis怎么部署php网站

iis部署php网站的方法:首先启动iis服务器,打开IIS服务器;然后进入页面填写网站相关内容;接着处理程序映射;最后设置默认文档为“index.php”即可。推荐:《PHP视频教程》1、启动iis服务器,打开II…

WordPress的SEO优化技巧

世界上大约有30%的网站都是由Wordpress搭建的,因为Wordpress自身构架清晰,代码规范,且网页评论直接书写在整个页面里,能够被搜索引擎检索到,因此对搜索引擎很友好。但有时候还是会出现只被搜索引擎搜录网站主页&#x…

将上线的网站的域名代理到本地

遇到的问题 从云端克隆下来的react项目,修改后运行的网页是线上生产的网站 什么导致的 Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开, 其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”, 当…

mouseenter和mouseover的区别

先看看图 总结 当事件对象没有子元素时,两者没有区别 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。对应mouseout 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。对应mouseleave

域名带后缀_3步教你正确选择网站域名,让SEO优化效果立竿见影

一个网站由三个部分组成: 域名、空间、程序 ,每一个部分都能够影响SEO优化的效果。而域名在SEO中占有最高的份额,因为我们做网站SEO优化时,所有权重都会累计到域名上。 有些小伙伴也跟我们反映过这样的情况:自己的网…

php 可视化编辑建站源码,CmsEasy可视化编辑商城系统 v7.3.1

网站系统主要功能模块商城模块:自定义商品筛选商品项自定义物流查询优惠劵会员积分会员充值库存自定义销售量多语言:自定义默认语言多语种添加定义语言图标语言绑定域名可视化编辑:布局元素布局分栏版块移动模块编辑插入模块新建复制模板内容…

jav简单的个人博客网站代码_简单的个人网站建站之旅

周末闲来研究了下搭建个人博客网站,这里的建站是指自己买一个云主机,然后搭建网站的这种,如果你有写博客的习惯或者也想建自己独立网站的可以一试,几乎不用自己敲任何的代码即可实现。我想肯定也有人对建博客建网站不熟悉&#xf…

服务器设置被远程,win10家庭版设置被远程桌面连接_网站服务器运行维护

win10系统开机显示其他用户怎么解决_网站服务器运行维护win10系统开机显示其他用户的解决方法是:1、首先打开运行窗口,输入【netplwiz】,打开用户账户;2、然后勾选【要使用本计算机,用户必须输入用户名和密码】选项&am…

国外创意网站设计:40个精美的水平滚动网站作品

我们平常见到的网站基本上都是垂直滚动,那么水平滚动的网站是怎么样的滚动形式呢?下面向大家展示40个创意的水平滚动网站作品,这些网站使用了 jQuery等优秀的 JavaScript 库来实现平滑的水平滚动动画效果,相信这些优秀的网站作品一…

带给你灵感的20个漂亮的单页网站设计作品

单页网站是指只有一个页面的网站,这种形式的网站曾经非常流行,现在依然有很多人喜欢。不过,并不是每个网站都适合做成单页,一般都是内容比较少而且将来内容也不怎么增加的情况才适合这样做。如果你打算做一个这样的网站&#xff0…

分享国外几个主流的设计网站/社区

Smashing Magazine Smashing Magazine是一家超酷的网站,拥有超炫的创作灵感。它是最大以及最流行的设计和博客网站之一。 Coroflot Coroflot拥有来自世界各地的设计师,他们有着丰富的、专业的设计经验。是许多设计师值得青睐的一家网站,他们的…

dseo13b打开自动消失_知识分享丨自动驻车开启后起步“咯嘣”声?

自动驻车开启,小油门起步,车辆起动瞬间,有一个“咯嘣”声?最近有我们车主朋友们向小编反馈日常用车过程中,自动驻车开启后,小油门起步,车辆起动瞬间,有一个“咯嘣”声,担心这种声音…

nanopi网站服务器,NanoPi/zh

OverviewFrontBackNanoPi是友善之臂专门为嵌入式Linux爱好者、创客、玩家设计的一款低功耗ARM主控板,它的尺寸只有Raspberry Pi(RPi)的一半大小,并且兼容RPi的GPIO接口,NanoPi集成无线WiFi和蓝牙4.0模块,并带有并行摄像头接口&…

基于GitHub+Hexo搭建个人网站

基于GitHubHexo搭建个人网站 软件安装: Node.js:https://nodejs.org/en/ 安装Node.js注意检查有没有安装成功。出现版本号就是安装成功了。 Git:https://git-scm.com/ 注册Github https://github.com/ 个人网站的固定格式:username.github.io 值得…

【电脑全部浏览器显示您与网站连接不是私密连接】

问题描述:本来正在正常的使用Chrome浏览器浏览网页,突然网页全部无法打开,均显示“您与该网站的连接不是私密连接”。后续使用其他的浏览器360安全浏览器、IE浏览器,均是证书不安全。 解决办法一:更改电脑时间&#x…

dw移动图片位置_网站制作(DW)

点击蓝字 关注我们您的网站制作推送已完成,请注意查收!DW的功能01•网页制作 Dreamweave业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。02•网站管理 使用网站地图可以…