迁移到新的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>
答案 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
是丹麦字母'ø'。