【问题标题】:Special character in URL on IIS, IIS hangingIIS上URL中的特殊字符,IIS挂起
【发布时间】:2012-12-10 09:56:08
【问题描述】:

一段时间以来,我在 Windows Server 2008 R2 上遇到了 IIS 的问题。我有一个网站需要移动到这台服务器上。

当我们移动解决方案时发生的情况是,每个具有 æ、ø、å、á 或空格 (%20) 等特殊字符的 URL 都将无法工作、挂起并最终超时。该问题出现在图像和文件(ashx、gif、jpg)上。一切看起来都在进行 URL 编码。

在这件事上,我们在旧服务器上完全没有问题。

以下是该问题的一些示例:

我确定这是我错过了一些疯狂的设置,我希望这里有人可以帮助我:)

亲切的问候, 尼尔斯

【问题讨论】:

    标签: asp.net iis-7.5 sitecore windows-server-2008-r2 freeze


    【解决方案1】:

    不确定 IIS 问题/解决方案,URL 中不允许使用 afaik 特殊字符,但解决此问题的“Sitecore”方法是通过配置替换字符。本文解释了所需的配置更改:SEO-friendly URLs in Sitecore

    但本质上,您需要在 Sitecore 配置中添加更多 encodenamereplacements:

    <encodenamereplacements>
        ...
        <replace mode="on" find="æ" replaceWith="a" />
        <replace mode="on" find="ø" replaceWith="o" />
    </encodenamereplacements>
    

    还有一个类似问题的帖子:Sitecore issue on replacing danish characters in url

    【讨论】:

    • 我们尝试一下。但是,如果我们将字符添加到 encodenamereplacements,它是否也会影响文件夹和文件名?正如我所看到的,Sitecore 已经构建了带有空格的文件夹,并且当然显示在 URL 中。
    • 它会影响 URL,这就是重点 - 用另一个字符替换一个字符。如果要替换空格,请添加 但请注意,在这种情况下,您不应允许名称中的连字符 (-) 以其他方式开头Sitecore 将在解析项目时将连字符转换回空格,这将导致无法找到该项目。这取决于您的总体要求和您想要实现的目标。
    • 请在 jammykam 链接的线程中查看我关于替换丹麦特殊字符的问题的答案,不可能简单地将“æ”替换为“a”。
    • SC LinkManager 现在包含lowercaseUrls="true",因此您不再需要自己担心大写转换。双字符的好点,正如你所说,最好的解决方案是重命名项目并使用编辑器的显示名称。
    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多