引用:
原帖由 xiaorsz 于 2008-9-30 13:18 发表 
可是可以,不过后面要有个index.php!
不用也是可以的
我以前试验过成功,资料来自网上:
给IIS加上支持WordPress的Permalink功能
给IIS加上支持WordPress的Permalink功能,可以通过ISAPI的URL Rewrite过滤器,或者404重定向的方式来实现。
ISAPI过滤器需要手动设置Rewrite规则,对于普通用户来说这是很困难的,而且一些空间商也不提供此类功能。
WordPress官网给出404重定向解决方法,不过存在缺陷,不能支持带Query String的链接,例如搜索结果的翻页:复制内容到剪贴板代码:
http://domain/page/2?s=key这里介绍一种同样通过404重定向的方式,解决Query String问题的方式:复制内容到剪贴板代码:
<?php
$ori_qs = $_SERVER['QUERY_STRING'];
$pattern = '/[^;]+;[^:]+:\/\/[^\/]+(\/[^\?]*)(?:\?(.*))?/i';
preg_match($pattern, $ori_qs, $matches);
$_SERVER['PATH_INFO'] = $matches[1] . '?' . $matches[2];
$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
$query_args = explode('&', $matches[2]);
unset($_GET);
foreach ($query_args as $arg)
{
$the_arg = explode('=', $arg);
$_GET[$the_arg[0]] = $the_arg[1];
}
include('index.php');
?>将上述代码保存为:wp-404-handler.php文件,上传至WordPress根目录,然后指定404模式为“url”,地址为"/wp-404-handler.php"。
如果你的WordPress不是安装在根目录,例如:"
http://domain/blog",那么请将上述地址修改为“/blog/wp-404-handler.php”。
另外,中文slug在IIS上失效的方式需要通过修改"wp-includes/classes.php"文件来实现。打开该文件,搜索:引用:
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO'];
else
$pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];
修改为引用:
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = iconv('GBK', 'UTF-8', $_SERVER['PATH_INFO']);
else
$pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
$req_uri = iconv('GBK', 'UTF-8', $_SERVER['REQUEST_URI']);经过这两步修改以后,IIS也能完美支持WordPress的Permalink功能了。