欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

程序员文章站 2022-07-09 17:09:55
再次查找,找到了ionic's isapi rewrite filter,完全开源,完全免费,完全没有中文使用手册。 测试后,使用正常,用法分享一下: 首先到官方网站h...

再次查找,找到了ionic's isapi rewrite filter,完全开源,完全免费,完全没有中文使用手册。

测试后,使用正常,用法分享一下:

首先到官方网站http://www.codeplex.com/iirf/release/projectreleases.aspx下载最新软件包,注意要下载的是ionicisapirewriter-2.*-release-bin.zip(下载地址),版本号可能会变化。以下安装仅针对win2003+iis6.0的服务器环境。

一、安装iirf

1、复制iirf的dll(iirf.dll)到相应的文件夹,如d:\rewrite。 或者,它可以在一个完全不同的目录树。 这取决于你。

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

2、如果您创建一个服务器全局范围的设置文件(iirfglobal.ini),你必须把它与(iirf.dll)文件在同一目录中。 该url rewrite筛选器将寻找其在该文件中的全局设置文件。 如果是多个站点,则在站点更目录下创建(iirf.dll)文件。

3、对(iirf.dll)所在目录赋予iis_wpg用户组“读取”、“读取与运行”、“写入”权限。

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

4、 打开internet信息服务管理器。右键点击iis管理器左栏“网站” 》“属性”,弹出“网站属性”选项卡,选择“isapi筛选器”,如下图添加iirf。

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

5、重启iis

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

6、右键点击iis管理器左栏“网站” 》“属性”,弹出“网站属性”选项卡,选择“isapi筛选器”,查看“iirf”加载是否成功。若是绿色向上箭头,则表示加载成功。

没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

 

二、规则文件格式基本照搬isapi rewrite,要作修改

rewriterule [源url正则条件] [目的url]
isapi rewrite与iirf的区别就在[目的url],isapi rewrite的要转义,而iirf不用转义。
如果网上有现成的isapi rewrite的规则可以直接复制过来,将[目的url]中的反斜杠(\)一个个删除就可以用在iirf中用了。
知道这个之后,你就可以随便在网上与人交流,按isapi rewrite交流,最后把转义符(\)删掉就行了。
 
三、日志设置

在iirf中日志值可以设置为0-5,在规则文件的开头部分有两行设置日志类型
rewritelog c:\rewrite\supesite\iirflog.out (注意要写清楚路径,各站点不同)
rewriteloglevel 0 (0为不记类,3为一般测试,5为处理故障)
日志的代价高昂,同时不会自动删除文件,日志类型一定要设成0,除非用于检查才能修改为其他值,检查完后一定要改为0,否则日志文件把硬盘占满就麻烦了。
如果日志不为0,筛选器起用后,对应文件夹会产生类似以下的文件,是文本格式的,可以用记事本查看。
iirflog.out.12345.log

四、查看配置

在iirf.ini文件中输入以下配置参数,则可通过浏览器方便查看目前iirf配置
statusurl iirfstatus
statusinquiry on
在浏览器中输入http://localhost/iirfstatus,即可查看。

五、规则文件可随时修改,随时生效!六、附上wordpress的iirf规则

先到wordpress后台设置固定连接为:/post/%post_id%.html
然后在wordpress所在网站的根目录创建(iirf.ini)文件,并在文件中加入以下规则:

复制代码 代码如下:

rewriteloglevel 0
rewritelog e:\flyingblue\logfiles\iirflog\log
statusurl iirfstatus statusinquiry on
rewriterule /index.html$ /index.php [l]
# from accessing through http
# # wordpress rewrite rules#
# # below is for permalink like /post/%post_id%.html
# # provided by sideblue
# # url:http://ivup.cn rewritecond %{request_filename} ^wp-content.* rewritecond %{request_filename} ^wp-admin.*
rewritecond %{request_filename} ^wp-include.*
rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d
rewriterule /post/tag/(.*) /index.php\?tag=$1
rewriterule /tag/(.*) /index.php?tag=$1
rewriterule /(contact|about-copyright|favor|archives|tags|sitemap) /index.php?pagename=$1
rewriterule /post/category/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php?category_name=$1&feed=$2
rewriterule /post/category/?(.*) /index.php?category_name=$1
rewriterule /author/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php?author_name=$1&feed=$2
rewriterule /author/?(.*) /index.php?author_name=$1
rewriterule /rss.xml /wp-feed.php?feed=rss2
rewriterule /feed/?$ /wp-feed.php?feed=rss2
rewriterule /comments/feed/?$ /wp-feed.php?feed=comments-rss2 #
rewriterule /([0-9]+)/?([0-9]+)?/?$ /index.php?p=$1&page=$2 #
rewriterule /post/([0-9]+)/?([0-9]+)?/?$ /index.php?p=$1&page=$2
rewriterule /post/([0-9]+).html /index.php?p=$1
rewriterule /page/(.*)/?s=(.*) /index.php?s=$2&paged=$1
rewriterule /page/(.*) /index.php?paged=$1
rewriterule /post/date/([0-9]{4})([0-9]{1,2})([0-9]{1,2})/([^/]+)/?([0-9]+)?/?$ /index.php?year=$1&monthnum=$2&day=$3&name=$4&page=$5
rewriterule /post/date/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&day=$3&page=$4
rewriterule /post/date/([0-9]{4})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&page=$3
rewriterule /post/([0-9]+).html/(feed|rdf|rss|rss2|atom) /index.php?feed=rss2&p=$1
rewriterule /post/([0-9]+).html/trackback /wp-trackback.php?p=$1