Wordpress忽略了URL中的Unicode Chars。

2022-08-30 19:18:26

我正在使用wordpress与这种类型的永久链接:

/%年份%/%月数%/%postname%/

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

它像这样处理这个网址 example.com/2010/03/(通过忽略unicode字符),并显示2010年3月的存档列表。

如果我使用英文网址:example.com/2010/03/technology 那么它就能完美地工作。

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

为什么wordpress忽略了unicode字符?

如果我使用默认的查询字符串结构,那么即使使用Unicode字符,它也可以完美地工作。

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


答案 1

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

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


答案 2

我正在本地计算机上运行WAMP服务器。我在我的IIS7 Web服务器上测试了_SERVER美元['PATH_INFO'],发现它有一些Unicode问题。Wordpress使用path_info来处理网址。我使用以下代码创建了一个文件测试.php:

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

然后我得到这个输出

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

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

相同的代码在我的本地Apache Windows服务器上工作得很好。


推荐