在IIS 8.5上转换为拉丁字符集的URL中的百分比转义

时间:2014-03-28 08:45:07

标签: php wordpress iis joomla utf-8

迁移到新的Windows IIS 8.5服务器后,请求不会以UTF-8字符传递,而是以单字节拉丁字符传递。

需要UTF-8字符才能在我们的WordPress和Joomla安装中使用漂亮或SEO友好的网址。

从PHP $_SERVER['REQUEST_URI']看起来像这样

/ p r e s s e / p r  ø  v e s i d e
2f7072657373652f7072 f8 766573696465

在Web服务器根目录中的web.config文件中,我们有

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <appSettings>
      <add key="aspnet:UseLegacyRequestUrlGeneration" value="true" />
   </appSettings>
   <system.web>
      <globalization
         requestEncoding="utf-8"
         responseEncoding="utf-8"
         culture="da-DK"
         uiCulture="da-DK" />
   </system.web>
   <system.webServer>
   ...
   <system.webServer>
<configuration>

1 个答案:

答案 0 :(得分:1)

将以下更改应用于注册表修复了问题

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

似乎IIS 7.5中的Microsoft KB2277918热修复程序已转入IIS 8.5

应用注册表后,更改$_SERVER['REQUEST_URI']在PHP

中看起来像这样
/ p r e s s e / p r  Ã ¸  v e s i d e
2f7072657373652f7072 c3b8 766573696465

字节C3 B8是丹麦字母'ø'。

相关问题