21

我正在使用带有此类永久链接的 wordpress:

/%year%/%monthnum%/%postname%/

如果我使用这种类型的网址:example.com/2010/03/तकनीक</p>

它将此 url 视为 example.com/2010/03/ (通过忽略 unicode 字符)并显示 2010 年 3 月的存档列表。

如果我使用英文网址:example.com/2010/03/technology,那么它可以完美运行。

即使在标签页面上也会出现此问题:例如 example.com/tag/इंटरनेट 被视为 example.com/tag/ 并显示 404 页面。

为什么 wordpress 忽略 unicode 字符?

如果我使用默认的查询字符串结构,那么即使使用 unicode 字符也能完美运行。

服务器信息:IIS7 Win2008 服务器(启用 URL 重写)Wordpress 2.9.2

4

3 回答 3

10

有关问题的概述,请查看:

http://ruslany.net/2010/03/important-update-for-iis-7-0-fastcgi-module/

这指的是你现在过时的:

http://ruslany.net/2010/02/fastcgi-module-differences-across-iis-versions/

我自己的情况通过应用 Win 7 SP1 得到了修复,但有趣的是,我仍然需要应用修补程序中描述的注册表黑客:

http://support.microsoft.com/kb/2277918

于 2011-12-07T15:01:43.757 回答
4

我在本地机器上运行 WAMP 服务器。我在我的 IIS7 Web 服务器上测试了 $_SERVER['PATH_INFO'] 并发现它有一些 unicode 问题。Wordpress 使用 path_info 来处理 url。我使用以下代码创建了一个文件 test.php:

如果我请求http://example.com/test.php/कुछशब्द/कुछऔरशब्द/english

然后我得到这个输出

----****----

/???????/?????????/english ----****---- path_info 正在将 unicode 印地语字符转换为 ?????。这意味着我的服务器中的 path_info 变量存在一些问题。您知道任何可能导致此类问题的 IIS7 设置吗?

相同的代码在我的本地 Apache Windows 服务器上运行良好。

于 2010-03-21T11:59:17.467 回答
1

知识库文章提供了一个修补程序,该修补程序不适用于我的 Windows 版本和/或使用“开始”>“运行”的代码,在我的Windows 7 Ultimate 和IIS 7.5.7600

reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO

我必须做以下选择之一:

1)添加注册。通过添加新的多字符串值在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters 下手动键入>> 值名称:FastCGIUtf8ServerVariables 值数据(两行):REQUEST_URI PATH_INFO

2 ) 以管理员身份使用 cmd.exe 执行代码,然后粘贴代码并执行

在这两种方式中,请记住在上一步之后以管理员身份在 cmd.exe 上执行 iisreset 命令。

于 2015-01-14T18:04:18.897 回答