WordPress程序IIS7.5主机环境伪静态中文标签链接404错误解决办法,需要对网站的全部中文链接(比如文章、页面等)进行转化支持,那么可以不用添加最后一步的web.config规则,只需要直接编辑web.config,将上图里面的改成即可.
Windows IIS7.5主机环境
WordPress个人博客建站,大兵建议大家选择linux服务器系统,可避免众多由于选择windows服务器系统而出现的问题, 例如选择windows服务器系统会导致中文标签链接打不开的问题,下面大兵专门针对Windows IIS 7.5下中文链接打不开的问题给大家一个解决办法。
首先在WordPress程序网站目录下新建一个“index2.php”文件,“index2.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中新增一条规则,并将此规则置于规则集合的顶部:
<rule name=”ChineseURL” stopProcessing=”true”>
<match url=”/(tag|category)/(.*)” />
<action type=”Rewrite” url=”index2.php” />
</rule>
效果如下:
WordPress程序IIS7.5主机环境伪静态中文标签链接404错误解决办法
如果WordPress程序网站不是安装在根目录下,则需要更改“<match url=”^(tag|category)/(.*)$” />”为“<match url=”^安装目录/(tag|category)/(.*)$” />”。
后台固定链接如果把默认的标签前缀和分类目录前缀(tag 和 category)改了,则更改这句里的对应内容即可。
以上两个方法只针对标签和分类里的中文链接,如果要修改全站的中文链接,那么就需要修改web.config规则文件,将上图中<action type=”Rewrite” url=”index.php” />改成<action type=”Rewrite” url=”index2.php” />就行了。
这种方法是新建index2.php文件,并配合伪静态规则进行实现的,WordPress更新升级不受影响。