首页 > 站点建设 > WordPress永久链接在IIS下的实现

WordPress永久链接在IIS下的实现

2009年8月16日 发表评论 阅读评论

因为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后台开启永久链接后,便可以看到效果了,本站便是用此方法实现的。

当然此方法同样适用于Apache环境,代码相同,不同的只是配置404错误转向到404.php的配置。配置是在wordpress目录下建立,.htaccess文件并在文件中增加“ErrorDocument 404 /index.php”即可。Apache环境下还可利用自身的扩展实现永久链接,参见《Apache下的WordPress永久链接实现》。


枫芸志原创文章,转载请注明来源并保留原文链接

本文链接:http://witmax.cn/wordpress-permalink-with-iis.html


分类: 站点建设 标签: , , 2,774次阅读
  1. 2011年1月14日00:59 | #1

    哇,非常感谢你的这篇文章,我在GG上找了N多方法,全行不通,只有你的这个行,哈哈,再次感谢,另外,我会挂上你的友链,希望能和你交个朋友。

    [回复]

  2. 阿宾
    2012年4月19日11:27 | #2

    感谢一下,这个方法的确可行,说下我的历程吧,买了WIN主机的空间,才发现有index.php,后来用别人的404解决了,再后来,又发现pagenavi出问题,又找了个另外的404解决,解决后发现主题偏左了,无奈之下,试用了博主的链接,竟然解决了。。。感谢下

    [回复]

    晴枫 回复:

    @阿宾, 总归是搞定就好

    [回复]

  1. 2011年11月13日09:52 | #1
订阅评论
  欢迎参与讨论,请在这里发表您的看法、交流您的观点。

无觅相关文章插件,快速提升流量