因为IIS不支持.htaccess,所以在IIS下开启WordPress永久链接后需要在格式前加上/index.php/,例如: /index.php/%postname%.html。但/index.php/显得无意义、不美观而且增加了目录层次,所以最好还是把它去掉。以下介绍两种实现方法:
1、安装 IIS 的 ISAPI 组件
这种方法适合能自己管理服务器的同学或者和空间提供商关系好的同学,因为需要服务器的管理权限安装一个免费的ISAPI扩展,详情请参考《WordPress在Win-iis中的完美rewrite实现方法》,该扩展可在这里下载。这个方法是很方便的,安装完扩展即可使用 WordPress 的永久链接,无需额外配置,但需要空间提供商的帮助。如果是免费主机的话,建议使用下面一种方法,自主可控。
2、利用404.php实现
首先需要编写404.php页面,上传404.php文件放到wordpress根目录下,代码如下:
<?php
if (strpos($_SERVER["SERVER_SOFTWARE"], "Apache") === 0){
// Apache
// REQUEST_URI形如"/non-exist-page.html"
$uri = $_SERVER['REQUEST_URI'];
}
else{
// IIS
// $_SERVER['QUERY_STRING']形如"404;http://localhost/non-exist-page.html"
$qstr = $_SERVER['QUERY_STRING'];
$_SERVER['QUERY_STRING'] = "";
$pos = strrpos($qstr, '://');
$pos = strpos($qstr, '/', $pos + 4);
$uri = substr($qstr, $pos);
}
$_SERVER['REQUEST_URI'] = $uri;
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
// 解决重定向的页面中的页面导航问题
$_SERVER['SCRIPT_NAME'] = $_SERVER['PATH_INFO'];
include('index.php');
?>
然 后需要设置IIS的404页面到wordpress根目录下的404.php。IIS下的设置步骤为:Internet信息服务窗口->右键网站或 wordpress目录->属性->自定义错误->选中404->编辑属性…->消息类型选择url->输入 /404.php(绝对路径)。
之后再wordpress后台开启永久链接后,便可以看到效果了,本站便是用此方法实现的。
这篇不错。受益了.