Win主机+IIS伪静态设置与Wordpress永久链接伪静态的完美教程
首先当然是配置iis下的伪静态,下面先说一下Windows2003Server下ISAPI_Rewrite3的安装及IIS配置。去http://www.helicontech.com/download.htm或者http://www.helicontech.com/download-isapi_rewrite3.htm
下载最新版本的ISAPIRewrite3,有商业完整版和免费Lite版两种。完整版的支持每个站点根目录自定义httpd.ini文件,可以免费试用45天。Lite版的只能配置全局httpd.conf,不能对每个站点做单独配置,可以免费使用。
在这里我使用Lite版(ISAPI_Rewrite3Liteinstallationpackage)。
下载后安装到任意位置,并确定安装目录有可读写权限,
点Next就好。
安装完成后进行配置,打开Internet信息服务(IIS)管理器,
在需要URLRewrite的站点上点击右键->属性->ISAPI筛选器->添加,
筛选器名称任意填,我填写的是ISAPIRewrite,
可执行文件里面选择ISAPIRewrite3安装目录下的ISAPI_Rewrite.dll文件。
最后一步是要编辑ISAPIRewrite安装目录下的httpd.conf文件,在开始菜单中也可以通过运行ISAPI_RewriteManager来编辑它。这里推荐使用其编辑器编辑,因为会有提错和测试功能,具体如下:
使用ISAPIRewrite3自配编辑器编辑配置文件httpd.conf:在Internet信息服务(IIS)管理器里”网站”(此”网站”为所有子网站的树型目录的父目录)上右键-选择ISAPI_Rewrite选项卡-点Edit进行编辑,编辑完成点Apply应用即可,如有错误会有提示,点RegExptest,能够直接测试编辑结果,这些相对文本编辑方便了不少.
需要注意的一点:编辑后的httpd.conf为隐藏状态,如果需要找到此文件,在文件夹选项设置显示隐藏文件即可。下面先举个简单例子,我要把
m5u.net/view.php?id=test重写为m5u.net/view-test.html
可以这样写:
RewriteRule/view-([0-9,a-z]*).html/view.php\?id=$1[L]
在这里要提醒一下,httpd.ini为isapirewrite配置文件,适用于win主机系统
.htaccess为apache下伪静态配置文件,多适用于linux主机系统
一般放到站点根目录下即可生效。下面是一个规则,内容放入http.ini即可。
[ISAPI_Rewrite]
#3600=1hour
CacheClockRate3600
RepeatLimit32
#中文tag解决
RewriteRule/tag/(.*)/index\.php\?tag=$1
#sitemapxml
RewriteRule/sitemap.xml/sitemap.xml[L]
RewriteRule/favicon.ico/favicon.ico[L]
#Forfile-basedwordpresscontent(i.e.theme),admin,etc.
RewriteRule/wp-(.*)/wp-$1[L]
#Fornormalwordpresscontent,viaindex.php
RewriteRule^/$/index.php[L]
RewriteRule/(.*)/index.php/$1[L]
———————————————
本规则添加了wordpress在win主机下的中文tag解决方案,使用此规则后无需更改wp的源文件即可解决中文tag的识别问题。本规则目前完美解决了wordpress2.7win+iis环境下伪静态的问题。
有了上面的理解,我们再来让wordpress使用任意格式的ReWrite
也就是说如何在Wimp平台中实现Wordpress的完美URL结构!
例:http://www.m5u.net/primus-pork-soda.html
用过Wordpress的应该都知道,实现这样的URL只需要在后台中:Settings->permalinks,然后设置成自己中意的URL就行了。但是前提是您的空间支持rewrite||您的虚拟主机支持.htaccess。Lamp,Wamp中只要开启加载mod_rewrite模块就行了。但是Wimp却不是这么简单的,它如果想实现rewrite功能只能借助于第三方的ISAPI组件。
现在来讲讲方法。首先,你的服务器要加载ISAPI_Rewrite。在wordpress官方许多人提出了需要单独加载专用的Rewrite,其实不需要。其次,建立好正确规则的httpd.ini。
备注:
1、在你使用ISAPI_Rewrite后,无需再使用cos-html-cache静态生成插件,因为没有这个必要了。
2、ISAPI_Rewrite下载地址见文章开始
规则如下:
程序代码
[ISAPI_Rewrite]
#Defendyourcomputerfromsomewormattacks
#RewriteRule.*(?:global.asa|default\.ida|root\.exe|\.\.).*.[F,I,O]
#3600=1hour
CacheClockRate3600
RepeatLimit32
#Protecthttpd.iniandhttpd.parse.errorsfiles
#fromaccessingthroughHTTP
#Rulestoensurethatnormalcontentgetsthrough
RewriteRule/software-files/(.*)/software-files/$1[L]
RewriteRule/images/(.*)/images/$1[L]
RewriteRule/sitemap.xml/sitemap.xml[L]
RewriteRule/favicon.ico/favicon.ico[L]
#Forfile-basedwordpresscontent(i.e.theme),admin,etc.
RewriteRule/wp-(.*)/wp-$1[L]
#Fornormalwordpresscontent,viaindex.php
RewriteRule^/$/index.php[L]
RewriteRule/(.*)/index.php/$1[L]
以上规则不仅可以实现自行设置url的目的,而且解决了采用index.php这样的方式翻页出现问题,无法去掉index.php的url显示等问题,同时也增加了对Google网站sitemap.xml的支持。
安装说明:
1.将Rewrite.dll拷贝到c:\Rewrite.dll(也可以拷贝到C:\WINDOWS目录内,位置根据喜好可以自由放置);
2.在IIS的Isapi上添加这个筛选器,筛选器名称Rewrite,可执行文件选择Rewrite.dll;
3.重新启动IIS,成功后会有如下显示:
注解:如果你是虚拟主机用户,需要联系主机商帮助来完成这些工作,其实他们的服务器支持伪静态也是开拓业务的一项美好事情(我的主机商已经加载过此组件,支持伪静态的),如果您是自己的服务器,那么您自行完成就可以了。
4.httpd.ini是配置文件,如果您了解Rewrite规则,可以直接对其进行编辑;
5.默认规则为wordpress专用,其他PHP程序伪静态无法使用,使用请设置相应规则;
备注:在前三项成功完成后,将httpd.ini传送到网站跟目录就完成了伪静态环境搭建,下边开始进入后台,设置永久链接采用自定义方式,代码可以参考官方:http://codex.wordpress.org/Using_Permalinks,设置您喜欢的显示方式即可。例如/%category%/%postname%.html含义是按照分类目录名称/内容页名称.html方式,增加html就是大家喜欢看到的静态标识。伪静态就这样建立完成了。