再次查找,找到了Ionic's Isapi Rewrite Filter,完全开源,完全免费,完全没有中文使用手册。
测试后,使用正常,用法分享一下:
首先到官方网站http://www.codeplex.com/IIRF/Release/ProjectReleases.aspx下载最新软件包,注意要下载的是IonicIsapiRewriter-2.*-Release-bin.zip(下载地址),版本号可能会变化。以下安装仅针对WIN2003+IIS6.0的服务器环境。
一、安装IIRF1、复制IIRF的DLL(IIRF.dll)到相应的文件夹,如D:\Rewrite。 或者,它可以在一个完全不同的目录树。 这取决于你。
2、如果您创建一个服务器全局范围的设置文件(IirfGlobal.ini),你必须把它与(IIRF.dll)文件在同一目录中。 该URL Rewrite筛选器将寻找其在该文件中的全局设置文件。 如果是多个站点,则在站点更目录下创建(IIRF.dll)文件。
3、对(IIRF.dll)所在目录赋予IIS_WPG用户组“读取”、“读取与运行”、“写入”权限。
4、 打开Internet信息服务管理器。右键点击IIS管理器左栏“网站” 》“属性”,弹出“网站属性”选项卡,选择“ISAPI筛选器”,如下图添加IIRF。
5、重启IIS
6、右键点击IIS管理器左栏“网站” 》“属性”,弹出“网站属性”选项卡,选择“ISAPI筛选器”,查看“IIRF”加载是否成功。若是绿色向上箭头,则表示加载成功。
二、规则文件格式基本照搬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
在前文中,介绍了Windows2003 IIS6/7完美实现WordPress伪静态的方法,主要说的是WordPress的伪静态配置方法,有一点局限性。而且用的是也免费的伪静态组件,只支持单站点,应用于其它系统可能不太合适。今天,就为大家介绍下Windows2003下IIS6.0、IIS7.0的伪静态组件安装和伪静态配置方法,还包括常用的伪静态规则使用方法。
1)下载IIS伪静态组件——ISAPI Rewrite v1.3 for IIS.CR完美破解版
ISAPI Rewrite v1.3 for IIS.CR非常好用,是个人见过最好用同时可以支持多站点的IIS伪静态组件,最重要的是它完全免费!
下载地址:ISAPI Rewrite v1.3 for IIS.CR免费下载
2)安装IIS伪静态组件
将下载的ISAPIRewritev1.3forIIS.CR.rar解压,你会看到两个文件夹Cracked和setup;
进入setup,你会看到ISAPI_Rewrite Full.msi这个安装文件,没错,双击它开始正式安装了;
一路Next,最后Finish确定,默认安装在C:\Program Files\Helicon下;
还没完,现在是最重要的一步,我们打开Cracked文件夹,将破解文件ISAPI_Rewrite.dll复制到C:\Program Files\Helicon\ISAPI_Rewrite文件夹中覆盖即可,IIS伪静态组件安装成功。
3)IIS伪静态配置方法
我们打开Internet 信息服务(IIS)管理器,找到“网站”,右键打开“属性”选项卡;
选择“ISAPI 筛选器”选项卡,点击“添加”,弹出“添加/编辑筛选器属性”,“筛选器名称”写上ISAPI_Rewrite,这个可以自定义;“可执行文件”这里,通过“浏览”找到伪静态组件安装目录下的ISAPI_Rewrite.dll文件即可,默认路径是C:\Program Files\Helicon\ISAPI_Rewrite\ISAPI_Rewrite.dll;
一路确定之后,我们重启下IIS管理器,之后再次打开网站属性的“ISAPI 筛选器”,看下是不是刚刚添加的ISAPI_Rewrite变为绿色向上的箭头呢?这样的话伪静态就配置成功了。
4)IIS伪静态使用方法
IIS伪静态配置成功后,在你的IIS管理器——网站下面,任意建立一个新网站,就可以使用伪静态了。你只需要在新网站根目录下新建立一个httpd.ini文件,用记事本或是emeditor打开,在里面写上相应的伪静态规则即可。
5)IIS伪静态规则
我们来看个伪静态规则的实例,适用于DedeCms的问答模块:
[ISAPI_Rewrite] # 缓存3600秒 = 1 小时(hour) CacheClockRate 3600 RepeatLimit 32 #问答模块 RewriteRule ^(.*)/post\.html(?:(\?.*))* $1/post\.php [I] RewriteRule ^(.*)/showAsk-([0-9]+)\.html $1/question\.php\?id=$2 [I] RewriteRule ^(.*)/browser-1-([0-9]+)\.html $1/browser\.php\?tid=$2 [I] RewriteRule ^(.*)/browser-2-([0-9]+)\.html $1/browser\.php\?tid2=$2 [I] RewriteRule ^(.*)/browser-1-([0-9]+)-p([0-9]+)\.html $1/browser\.php\?tid=$2&page=$3 [I] RewriteRule ^(.*)/browser-2-([0-9]+)-p([0-9]+)\.html $1/browser\.php\?tid2=$2&page=$3 [I] RewriteRule ^(.*)/browser-([0-9]+)\.html $1/browser\.php\?lm=$2 [I] RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+)\.html $1/browser\.php\?tid=$2&lm=$3 [I] RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+)\.html $1/browser\.php\?tid2=$2&lm=$3 [I]
将上面的伪静态规则保存在httpd.ini文件中,就的网站就可以通过伪静态正常访问了。至于具体的伪静态规则,每人网站的实际情况都不一样,也没个固定的写法,你可以参考上面的规则总结出自己的写法。不论是DedeCms、PHP168、PHPCMS,还是Discuz,都很好用。每个独立的站点对应一个独立的httpd.ini文件,对于多站点来说,非常灵活、方便。
以上就是Windows2003 IIS6/7伪静态的详细介绍,其中有IIS伪静态组件下载和安装方法,还有IIS伪静态的配置和使用方法,另外,对IIS伪静态规则的写法也作了相应补充和说明。具体步骤很详细,如果你还是不能正常使用伪静态的话,请留言给我!本文由小拼原创,转载请注明文章出处和链接地址。
mod_expires 用于发送header,设置静态文件的过期时间
cd httpd-2.2.19/modules/metadata
sudo /usr/local/apache2/bin/apxs -i -a -c mod_expires.c
sudo vi /usr/local/apache2/conf/httpd.conf
ExpiresActive On
FileEtag none
mod_deflate 用于开启gzip压缩
cd httpd-2.2.19/modules/filters
sudo /usr/local/apache2/bin/apxs -i -a -c mod_deflate.c
sudo vi /usr/local/apache2/conf/httpd.conf
SetOutputFilter DEFLATE