asp.net - URL 解码在 Azure Web 应用程序上不起作用

标签 asp.net azure umbraco azure-web-app-service urldecode

我似乎遇到了舞台站点上 URL 解码不正确的问题。我一直在网上查找,但似乎找不到任何有关如何切换默认使用的解码方法的信息。我可以看出阶段站点正在使用 Windows-1252 来解码 url,示例如下:

舞台站点(错误)

de-de/people/%C3%A1ine-hurley/ -> de-de/people/áine-hurley

开发网站(正确)

de-de/people/%C3%A1ine-hurley/ -> de-de/berater/áine-hurley

开发人员和实时站点都呈现正确的 URL,该 URL 正在使用 UTF-8 进行解码。有关解码字符的比较,您可以访问此链接 http://www.w3schools.com/tags/ref_urlencode.asp

我真的很茫然,舞台和现场都是在Azure Web应用程序中设置的,并且从我所看到的具有相同的设置(但是我有一种感觉,它可能是某处的服务器设置)。

如果有人能给我更多有关其工作原理的信息,或者是否可以更改服务器上的解码设置,我将不胜感激。如果需要更多信息,我很乐意提供。我只是不确定哪些信息有用。

最佳答案

经过更多调查,我注意到阶段站点实际上向一个 URL 发出 301 永久重定向,该 URL 首先使用 windows-1252 解码,然后重新编码为 UTF-8(这很奇怪,因为我找不到代码中任何可以完成此操作的地方,我也无法在重写规则中找到任何内容)。

但是,通过添加永久规范重定向来解决没有 www 的暂存站点,可以解决此问题。并强制它到 stage.sitename.come。下面的规范示例:

<rule name="Redirect to WWW" stopProcessing="true" >
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^www\." negate="true"/>
    </conditions>
    <action type="Redirect" url="https://www.{HTTP_HOST}{HTTP_URL}" redirectType="Permanent" appendQueryString="false" />
</rule>

如果有人知道为什么这可以解决问题,我很想知道:)。希望这可以帮助遇到此问题的其他人。

关于asp.net - URL 解码在 Azure Web 应用程序上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37328720/

相关文章:

asp.net - MVC 自定义角色提供程序重定向到登录页面

azure - 使用 Role 参数调用 Set-AzureServiceDiagnosticsExtension 失败

azure - 如何从azure功能将消息添加到azure服务总线?

c# - 传入字典的模型项是 'Umbraco.Web.Models.RenderModel' 类型的,但是这个字典需要一个 'TestModel' 类型的模型项

asp.net - 找不到 AmazonS3 的类型或命名空间

c# - ASP.NET 网站在恰好 50 个请求后崩溃

umbraco如何扩展富文本编辑器

.net - Sharepoint CMS 与 UmbracoCMS

asp.net - jQuery 和 ClientScriptManager.RegisterStartupScript

asp.net - Azure 网站中的机器 key (不是 Web 角色)