Win2003+IIS6 配置WordPress伪静态详细流程

今天服务器重装系统,又搞了一遍伪静态配置,按照以前的做法,突然不管用了,于是找来以前参照的教程结合自己碰到的问题,详细的把过程梳理一遍才算搞定。
这次我还是用ISAPI Rewrite3这个最常见的插件配置。

步骤1. 下载ISAPI Rewrite3,下载地址【点这里】。远程登录服务器,把插件上传到服务器桌面,双击开始安装,期间一路点下一步,安装到默认目录即可。在我的服务器上默认安装目录为C:\Program Files\Helicon

步骤2. 打开IIS窗口,右键点击网站-打开属性-ISAPI筛选器,看到已自动添加的IISAPI Rewrite3筛选器,点删除
Win2003+IIS6 配置WordPress伪静态详细流程

步骤3. 右键点击需要配置伪静态的WordPress网站,打开属性-ISAPI筛选器,点添加。在弹出的窗口中命名ISAPI_Rewrite3;可执行文件就选安装目录下的ISAPI_Rewrite.dll。
Win2003+IIS6 配置WordPress伪静态详细流程
添加完毕就是这样的,刚添加完毕优先级应该是未知:
Win2003+IIS6 配置WordPress伪静态详细流程
点确定保存

步骤4. 回到第二部的全局网站,右键属性-IISAPI Rewrite选项卡(插件安装完毕后会多出来这个选项卡),点Edit,把以下内容复制进去然后保存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
RewriteEngine On
RewriteCompatibility2 On
RepeatLimit 32
RewriteBase 
# unsupported directive: [ISAPI_Rewrite]
 
#  3600 = 1 hour
# unsupported directive: CacheClockRate 3600
#  Protect httpd.ini and httpd.parse.errors files
#  from accessing through HTTP
#  Rules to ensure that normal content gets through
RewriteRule ^/robots.txt /robots.txt [L]
RewriteRule ^/sitemap.xml$ /sitemap.xml [L]
RewriteRule ^/favicon.ico$ /favicon.ico [L]
#  For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule ^/wp-(.*)$ /wp-$1 [L]
#  For normal wordpress content, via index.php
RewriteRule ^/$ /index.php [L]
RewriteRule ^/(.*)$ /index.php/$1 [L]
# For tags
RewriteRule ^/tag/(.*) /index.php/?tag=$1[L]

Win2003+IIS6 配置WordPress伪静态详细流程

步骤5. 检查一下IIS的web服务扩展里面,IISAPI Rewrite是否为允许,如不是就设置为允许
Win2003+IIS6 配置WordPress伪静态详细流程

步骤6. 资源管理器中打开C:\Program Files\Helicon(也就是安装目录),右键点文件夹ISAPI_Rewrite3,点安全选项卡,给这个文件夹添加everybody用户的读取权限,注意只要读取权限即可,其他都不勾选
Win2003+IIS6 配置WordPress伪静态详细流程
点确定保存

步骤7. 重启一下IIS服务,cmd命令行命令:iisreset /restart

步骤8. 文本编辑软件打开wp-includes/class-wp.php
查找代码

1
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';

改成

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

查找代码

1
list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );

改成

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

如果不做这一步,win主机上中文伪静态是无法实现的。

步骤9. 打开主题的function.php,添加如下代码:

1
2
3
4
5
6
7
8
9
function redirect_search() {
	if (is_search() && !empty($_GET['s'])) {
		$keywords=mb_convert_encoding( get_query_var('s'), "UTF-8", "GBK" );
		$keywords=urlencode( $keywords );	
		wp_redirect(home_url("/search/").$keywords);
		exit();
	}
}
add_action('template_redirect', 'redirect_search' );

这一步是为给站内搜索添加跳转功能,并且让它在win主机下能支持中文。

步骤10. 进入WordPress后台,配置伪静态,最后保存设置。
Win2003+IIS6 配置WordPress伪静态详细流程

至此大功告成。步骤2,3,5,8,9是我踩过的坑,如果配置不成功多半是其中哪一部没做完整,另外配置完成后要重启IIS。写这篇日志以作笔记,如果碰到新的问题我会更新此文。

本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/76.html。百度不可信,搜索请谨慎。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以获取本文的最新版本。

关注我们的微信公众号-JennyStudio 本站记录了近几年的工作中遇到的一些技术问题和解决过程,“作品集”还收录了本人的大部分作品展示。除了本博客外,我们的工作室网站 – JennyStudio,内有更多作品回顾和展示。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。

发表评论

电子邮件地址不会被公开。 必填项已用*标注