WordPress 忽略 URL 中的 Unicode 字符

发布于 2024-08-25 07:23:13 字数 495 浏览 3 评论 0原文

我正在使用带有这种类型的永久链接的 WordPress:

/%year%/%monthnum%/%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 Server(启用URL重写) WordPress 2.9.2

I am using wordpress with this type of permalink:

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

if I use this type of url:
example.com/2010/03/तकनीक

it treats this url like this example.com/2010/03/ (By ignoring unicode chars)
and displays March 2010 archive list.

if I use english url:
example.com/2010/03/technology
then it works perfectly.

This problem occurs even on tags page:
for example example.com/tag/इंटरनेट is treated like example.com/tag/ and displays 404 page.

Why wordpress is ignoring unicode chars?

If I use default querystring structure then it works perfectly even with unicode characters.

Server Info:
IIS7 Win2008 Server (Url rewriting enabled)
Wordpress 2.9.2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

茶色山野 2024-09-01 07:23:14

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

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

这让您参考现已过时的:

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

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

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

For an overview of the problem, review:

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

this refers you to the now outdated:

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

My own situation was fixed by applying Win 7 SP1 but, interestingly, I was still left with applying the registry hack that is described in the Hotfix:

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

夏花。依旧 2024-09-01 07:23:14

我正在本地计算机上运行 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 服务器上运行得非常好。

I am running WAMP server on local machine. I tested $_SERVER['PATH_INFO'] on my IIS7 web server and found that it has some unicode problem. Wordpress uses path_info to handle urls.
I created a file test.php with following code:

If I request http://example.com/test.php/कुछशब्द/कुछऔरशब्द/english

then I get this output

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

/???????/?????????/english
----****----
path_info is converting unicode hindi chars to ?????.
That means there is some problem in path_info variable in my server.
Do you know any setting IIS7 that can cause such type of problem?

The same code works perfectly fine on my local Apache Windows server.

南…巷孤猫 2024-09-01 07:23:14

知识库文章提供了一个修补程序,该修补程序不适用于我的 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) 添加Reg。通过添加新的多字符串值>>在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters 下手动键入
值名称:FastCGIUtf8ServerVariables
值数据(两行):
REQUEST_URI
PATH_INFO

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

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

The KB article provides a hotfix which didn't work for my windows version and/or code to use using Start > Run which also wasn't effective and didn't add the registry key for some reason in my case on Windows 7 Ultimate and 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

I had to do one of the following choices:

1) Add the Reg. Key manually under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters by adding new Multi-string value >>
Value Name : FastCGIUtf8ServerVariables
Value Data (two lines):
REQUEST_URI
PATH_INFO

2 ) Execute the code using cmd.exe as an administrator then paste the code and excute

In both ways remember to execute the iisreset command on cmd.exe as administrator after the previous step.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文