解决在IIS 7+上WordPress打不开中文标签

5月 26, 2015 0 条评论 1.01k 次阅读 0 人点赞

服务器转到Windows VPS后基本是一切顺利(当然我服务器的是IIS 8),不过只要地址栏中存在中文字符就会跳转到404页面,虽然可以通过修改程序文件或者修改 Tag 和分类的别名为英文的方法来解决,但非常不实用。

下面介绍一种解决方法,只需要增加一个 PHP 文件,并修改一下 web.config 文件中的 Rewrite 规则即可,不需要修改程序文件。

新建一个“curl.php”文件,内容如下:

<?php
if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
 // IIS Mod-Rewrite
 $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
} else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
 // IIS Isapi_Rewrite
 $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
} else {
 // Use ORIG_PATH_INFO if there is no PATH_INFO
 (!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'])) {
 ($_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME']) ? ($_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO']) : ($_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO']);
 }
 // Append the query string if it exists and isn't null
 (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) && ($_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING']);
}
require("index.php");
?>

修改或建立 Web.Config 文件,内容为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.webServer>
		<rewrite>
		  <rules>
			<rule name="cnUrl" stopProcessing="true">
			  <match url="^(tag|category)/(.*)$" />
			  <action type="Rewrite" url="cnurl.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>

最后把这两个文件上传至网站根目录。


另外如果有网友有兴趣的话,并且放心的话,可以找我挂站点。

服务器信息:Windows Server 2012,SSD固态硬盘,节点在日本,测试网站就是本博,价格从优。

站点要求:非大流量站点,最好是个人博客站点,内容健康,至于站点硬盘占有量最好别太大,SSD硬盘容量不大的,数据库无所谓的。

程序要求:PHP,ASP,.NET(数据库最好不要MSSQL)。

服务保证:自用VPS,上面挂了自己的和朋友的站点,基本是不会跑路的。就算跑路也会提前通知备份。除周日外全天基本是在线的,有问题及时解决,(周日晚上在线)。

联系方式:具体可以联系点击这里给我发消息


再另有几个日本的VPN出售

 

孑愁

一个Microsoft、Google、Apple的爱好者综合体,喜欢一切和数码科技有关的东西,也希望能及时的把这些分享给关注它们的人。现就职于某互联网公司,担任前端

文章评论(0)