参考网址:http://jingyan.baidu.com/article/cbf0e500ebec582eaa2893d2.html
文中涉及到的程序源码以及配置 详见附件:https://files.cnblogs.com/files/duanweishi/WordPress_urlrewrite.zip
说明:
1.所有配置以附件中为准,下文中的web.config配置之后,无法正常浏览css和图片,参考附件中的配置即可
2.web.config中ChineseURL相关的url重写配置,主要用于分类和标签的实现
第一步:首先下载安装url Rewrite:
下载地址:http://www.iis.net/downloads/microsoft/url-rewrite
第二步:新建一个“chineseurl.php”的文件,并将下面的内容复制进去,再上传到网站根目录:
<?php
// IIS Mod-Rewrite
if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
}
// IIS Isapi_Rewrite
else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
}
else
{
// Use ORIG_PATH_INFO if there is no PATH_INFO
if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) )
$_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
// Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
if ( isset($_SERVER['PATH_INFO']) ) {
if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] )
$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
else
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];
}
// Append the query string if it exists and isn’t null
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] .= ’?' . $_SERVER['QUERY_STRING'];
}
}
require(“index.php”);
?>
第三步:修改 web.config 文件
修改 web.config 文件,如果没有就新建一个,同样复制下面这段代码,并上传到网站的根目录:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=”ChineseURL” stopProcessing=”true”>
<match url=”^(tag|category)/(.)$” /> <action type=”Rewrite” url=”chineseurl.php”/>
</rule>
<rule name=”wordpress” patternSyntax=”Wildcard”>
<match url=”” />
<conditions>
<add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” />
<add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” />
</conditions>
<action type=”Rewrite” url=”index.php” />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
第四步:在wordpress设置中的固定链接自定义结构
完成以上步骤后,就可以直接在wordpress设置中的固定链接自定义结构了,一般是使用:/%post_id%.html 根据自己的选择是否使用.html。
第五步:下载并启动WP No Category Base插件
完成以上步骤后,恭喜你啦,已经实现了Wordpress在windows,IIS中实现伪静态,这时候我们会发现栏目中多了一行没用的分类,只需要下载并启动WP No Category Base插件,不需要其他设置,即可去掉这一分类。