首页 > 淘插件 > 其它 > rewrite组件—IIS服务器伪静态设置组件
rewrite组件—IIS服务器伪静态设置组件
授权形式: 免费版
更新时间: 2013-08-07 09:17:26
软件语言: 英文
软件平台: Win2000/WinXP/Win2003,Vista,Linux,win78
软件类别: 国外软件
文件大小: 未知
评论等级: ★★★★☆
浏览次数: (今日:,本周:,本月:
跳转地址: [跳到下载地址] 暂无预览
软件简介

rewrite组件—IIS服务器伪静态设置组件

软件介绍
Rewrite
是一种服务器的重写脉冲技术, 它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术。它还可以实现限制特定IP访问网站的功能。很多网站的伪静态技术需要在IIS服务器商配置Rewrite组件来实现。很多情况下,某个 IP 的访问很容易造成 CPU 100% (比如 某些搜索引擎的固定抓取,别人大量的采集站点),这个时候我们就要利用一些有效的手段封掉对方的 IP,让他无法消耗服务器的资源,封 IP 的方法有很多种,如果你的 Web 服务器安装了 Rewrite 模块的话,也可以试试利用 Rewrite 规则封掉对方的 IP。

主要的功能

Rewrite主要的功能就是实现URL的重写,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。
基于服务器级的(httpd.conf)
有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。
基于目录级的(.htaccess)
要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。

如何使用Rewrite功能

一. 我们通过在IIS服务器中安装一个名为 ISAPI_Rewrite 的ISAPI筛选器来实现 Rewrite 功能,您需要做的事情只有一个,就是修改配置文件 httpd.ini ,这里我们举一个简单的例子来说明它的用法。假设您要实现这样的 Rewrite 功能:您希望当用户访问 /about.htm 的时候实际访问的是 /index.html (您的空间里可以并不需要存在 about.htm)。
设置方法是:
1、创建一个文本文件,内容为
[ISAPI_Rewrite]
RewriteRule /about\.htm /index.html
这里,RewriteRule 这一行即为规则行,这一行由三部分组成,三部分由空格隔开,第一部分即 RewriteRule 这几个字,第二部分为用户访问的地址(使用正则表达式),第三部分为实际存在于服务器上的文件路径。
2、将上述文件保存,命名为 httpd.ini 。
3、将这个文件上传到您的网站根目录中,对于我们的虚拟主机,即上传至 /web 文件夹中。
这时,当您访问 about.htm 的时候,看到的就是 index.html 的内容。
Rewrite 是一个功能强大的平台,要真正的使用它,您可能要花费相当长的时间来学习。如果您使用像 Discuz! 论坛等支持伪静态的系统,而仅仅是需要使用伪静态功能,那么您可以不必学习,直接复制论坛开发者提供的配置文件即可,但要注意配置文件必须命名为 httpd.ini ,并且这个文件必须放在网站的根下。
httpd.ini 修改或者上传后一般会立即生效,如果长时间不能生效,请登录主机控制面板将网站停止然后再启动。
评述:不建议修改httpd.ini或者http.conf文件,因为这样需要重新启动apache。建议在项目的根目录建立一个文档,文档名字就是.htaccess,然后把重写规则写进去,这样就不需要重启apache。
二、怎样借助 Rewrite 功能为特定的域名显示特定文件夹中的内容?
这实际上是 Rewrite 功能的巧用,因为我们既然可以将 /about.htm 重写为 /index.html ,我们也就可以把 /about.htm 重写为 /about/ 。下面我们讲具体的实现方法。
我们假设您有两个域名 www.name1.com 和 www.name2.com ,我们实现让访问 www.name1.com 时看到的是网站根下的内容,而访问 www.name2.com 时看到的是 /name2/ 文件夹中的内容。
那么设置步骤如下:
1、将您的网站捆绑域名 www.name1.com 和 www.name2.com ,这个非常重要,两个域名都要捆绑。这时候如果不做设置,两个域名访问的都是网站根下。
2、修改上述问题一中的 httpd.ini 文件,在尾部增加以下内容:
RewriteCond Host: www\.name2\.com
# 表示下一行规则只对 www.name2.com 生效(正则表达式中 \. 表示 . 本身)。
RewriteRule ^(.*)$ /name2/$1 [I]
# 表示将所有网页 Rewrite 到 name2 文件夹中,[I]表示忽略大小写。
请确认上述内容位于 [ISAPI_Rewrite] 行之下,如果原本网站不存在 httpd.ini 文件,请将上述内容前面加上 [ISAPI_Rewrite] 。
3、将修改后的 httpd.ini 上传到网站根下覆盖原文件。
通过这个方法,您可以将捆绑在网站上的任何一个域名采用任何特定的 Rewirte 规则,实现类似捆绑子目录的功能当然也是不在话下。这样,您的空间能捆绑多少个域名,您就可以建立多少个内容不同的网站了。
下载地址
收藏
希望此广告对您有帮助->关于追太阳的广告
回到顶部