Windows2003 IIS6完美解决Wordpress伪静态的方法

  前几天由于各种原因,韦文成博客所在服务器系统从Linux换回到了Windows 2003,博客也因此几天没能正常访问。

  韦文成博客所使用的是Wordpress系统,在Nginx下进行伪静态是相当容易十分简单的事情,可是使用了IIS6就不是那么回事了,网上找了些IIS下Wordpress进行伪静态的方法,但大都不理想,比如利用404,利用ISAPI_ReWrite进行伪静态,总会有这样那样的问题。

  无意中发现可以利用WordPress URL Rewrite完美解决遇到的问题。

  Windows2003 IIS6下配置WordPress伪静态方法:

  1.下载WordPress URL Rewrite组件

  下载地址:http://www.binaryfortress.com/wordpress-url-rewrite

  WordPress URL Rewrite主要功能与特色:完全无需人工干预,全自动重写URL,只需要在后台设置好固定链接(Permalinks)形式,就能直接使用,就像linux下用htaccess一样。可以使用在一级目录和子目录,也可以排除不需要重写的目录。这个非常方便,对于某些目录不需要URL重写的就将其排除,不会造成无法访问。因为全自动,所以免去了在写重写规则时候遇到的规则重复造成部分目录和文件无法实现的情况。

  2.安装WordPress URL Rewrite

  把下载的压缩包解压到任何地方,只要保证WordPressURLRewrite.ini和WordPressURLRewrite32.dll(32位版本,64位版本对应为64.dll)在同一文件夹下就可以了。

  然后打开WordPressURLRewrite.ini设置你的博客目录,以及需要排除的目录,Readme.txt里有详细说明,这里就不细说了。

  接下来,在IIS中选择相应的站点,在ISAPI筛选器中加载WordPressURLRewrite32.dll就可以了,加载完重启IIS或者停止网站再启动即可。

  

  注意:要给dll所在的目录加上IIS_WPG组的写入权限,否则无法加载对应dll文件。

  如果箭头红色并且向下,请尝试检查组件文件夹的权限。

  到此配置已经完全OK了,因为韦文成博客的文章、栏目、tag别名均是用的英文,但是如果你的博客路径存在中文名,就得往下看了(以下方法为转载,未亲自测试)。

  存在并需要解决的问题:

  (1)中文的tag无法访问

  解决办法:需要使用ISAPI_Rewrite来写一条规则:

  RewriteRule /tag/(.*) /index\.php\?tag=$1

  (2)含有中文的网址不能访问

  1.安装ISAPI_Rewrite

  网站根目录下新建立一个httpd.ini文件,用记事本或是EditPlus打开,规则写在httpd.ini里,如下:

  [ISAPI_Rewrite]

  # 3600 = 1 hour

  CacheClockRate 3600

  RepeatLimit 32

  RewriteRule /tag/(.*)/ /index\.php\?tag=$1

  现在中文tag是能访问了,但是还是存在问题。

  存在的问题:

  (1) tag页面的文章超过1页,翻页时都不能访问

  解决办法:修改这条规则为:

  RewriteRule /tag/[^/]+)/([^/]+)/?([0-9]+)?/ /index.php?tag=$1&paged=$3 [L]

  但是修改之后中文tag又不能访问了,别担心,接着看下一步。

  2.修改wp-include中的classes.php

  继续修改第1步中的问题,因为修改Rewrite规则之后中文tag还是不能访问,含有中文的网址也不能访问。最好使用专门的PHP编辑器工具,如EditPlus。

  原代码:

  $pathinfo = $_SERVER['PATH_INFO'];

  替换为:

  $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");

  原代码:

  $req_uri = $_SERVER['REQUEST_URI'];

  替换为:

  $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");

  修改后保存,然后将保存好的classes.php文件上传并覆盖原文件即可,注意文件保存格式。

  注:在本文复制代码可能会出现中文标点符号,请统一改成英文符号,以免出错。

  本文首发韦文成博客,原文地址:http://www.weiwencheng.com/wordpress/win2003-iis6-wordpress-rewrite/

时间: 2024-10-23 18:28:00

Windows2003 IIS6完美解决Wordpress伪静态的方法的相关文章

ISAPI Rewrite多站点破解版 完美实现IIS伪静态的方法_win服务器

在前文中,介绍了Windows2003 IIS6/7完美实现WordPress伪静态的方法,主要说的是WordPress的伪静态配置方法,有一点局限性.而且用的是也免费的伪静态组件,只支持单站点,应用于其它系统可能不太合适.今天,就为大家介绍下Windows2003下IIS6.0.IIS7.0的伪静态组件安装和伪静态配置方法,还包括常用的伪静态规则使用方法.1)下载IIS伪静态组件--ISAPI Rewrite v1.3 for IIS.CR完美破解版ISAPI Rewrite v1.3 for

Linux主机WordPress伪静态设置方法

WordPress实现伪静态利于搜索引擎收录,但有不少新人朋友还是始终无法成功设置WordPress伪静态. WordPress已经给出了几种URL伪静态形式,但都不很理想,我们希望的URL形式为: 域名/分类别名/文章ID.html 那就择自定义结构选项,填写: /%category%/%post_id%.html 如果你对这种形式不满意,可以自定义任意形式,只要合理搭配参数即可,可以使用的参数如下: %year%:文章发表的年份,四位数字,如2012 %monthnum%:文章发表的月份,如

linux系统中WordPress伪静态配置方法

L我们是否有发现环境中我们较为常用的wordpress伪静态不生效,内页出现404错误页面.这个问题很好解决,因为我们lnmp采用的是nginx,而不是apache,所以不如apache直接丢htaccess文件到网站根目录就可以生效伪静态. 首先,默认安装的lnmp环境中已经有伪静态文件wordpress.conf文件在"/usr/local/nginx/conf/wordpress.conf"中,我们可以核对一下里面的编译代码是不是为:  代码如下 复制代码 if (-f $req

解决wordpress伪静态文件导致默认首页不生效

winscp连接后,到/user/local/nginx/conf/目录下找到wordpress.conf文件,将文件内容替换为: location / { if (!-e $request_filename) { rewrite ^.+/?(/wp-.*) $1 last; rewrite ^.+/?(/.*\.php)$ $1 last; rewrite ^(.+)$ /index.php?q=$1 last; } } 修改后保存即可...保存后还没生效,需要ssh链接后给予 service

IIS6升级到IIS8伪静态设置方法

最近一哥们网站原来用的是WIN2003服务器.后来换空间以后IIS为8.0的.服务商说只支持web.config.规则要改变.无语啊.都没弄过这个.经过搜索和研究终于搞定.被大家说得太复杂了.其实参考下觉得并不太难 原有Rewrite  代码如下 复制代码 [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 RewriteRule ^/index.html$ /index.php [N,I] RewriteRule

WordPress伪静态规则(Nginx/apache/iis)

额 服务器最近老是折腾 网站也到处跑 其中 环境也换来几种 一会apache,一会nginx: 老是环境出问题 经测试,下列代码完美兼容Nginx的伪静态规则.    代码如下 复制代码 rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last; if (!-e $request_filename) { rewrite ^.+?(/wp-.*) $1 last; rewrite ^.+?(/.*.php)$ $1 last; r

解决wordpress因cookie设置错误导致密码正确无法登陆

有人遇到登陆wordpress网站时密码正确却无法登陆的情况,开始我觉得很好奇,密码正确怎么可能登陆不上呢?在对方真的确定密码正确后,翻了一些资料,果然真有这种情况出现.后面只需要一步的修改很快就解决问题了. 开文件"/wp-includes/pluggable.php",修改wp_set_auth_cookie函数. 找到694行(3.1.2版本) 将:  代码如下 复制代码 setcookie($auth_cookie_name, $auth_cookie, $expire, AD

Win7/Windows2003下IIS6.0、IIS7.5的伪静态组件ISAPI_Rewrite安装和伪静态配置方法

说实在的windows的服务器是我最不喜欢的系统,所以一直以来做的很少,没办法,而这次就需要做Windows2003下iis6.0伪静态,没办法,只能倒腾选,把过程和经验贴出来,学习下.  Win7/Windows2003下IIS6.0.IIS7.5的伪静态组件isapi_rewrite安装和伪静态配置方法 本过程适合: Win7/Windows2003下IIS6.0.IIS7.5 1)下载IIS伪静态组件--ISAPI_Rewrite3完全破解版 ISAPI_Rewrite3非常好用,是个人见

Win7/Windows2003下IIS6.0、IIS7.5的伪静态组件安装和伪静态配置方法_win服务器

1)下载IIS伪静态组件--ISAPI_Rewrite3完全破解版 ISAPI_Rewrite3非常好用,是个人见过最好用同时可以支持多站点的IIS伪静态组件!1.官网下载(http://www.helicontech.com/download/isapi_rewrite/ISAPI_Rewrite3_0073.msi):2.建议从本网站下载破解版:http://www.jb51.net/softs/41171.html2)安装IIS伪静态组件1.以下载本网站的破解版为例:将下载的ISAPI_R