使用 IIS 托管的 Angular 应用程序无法正确处理 % 符号

问题描述 投票:0回答:1

我在使用 IIS(Internet 信息服务)托管的 Angular 应用程序中遇到问题,并且我想从响应标头中隐藏服务器名称详细信息。我面临的问题与应用程序如何处理 URL 中的 % 符号有关。每当访问带有 % 符号的 URL 时,应用程序似乎无法正确解释它,从而导致意外行为并显示服务器名称。请求成功后,URL 中不会显示 % 符号。请求失败时,服务器名称会显示在 URL 中。

例如,如果我尝试访问 http://localhost:4000 那么它工作正常。但如果我将 % 符号作为后缀添加到 URL 中,它会返回 400-Bad-Request 作为响应。

我已正确设置所有角度路由设置,在这种状态下,应用程序正在按预期工作。问题在于应用程序托管在 IIS 服务器上。

我正在分享我尝试解决此问题的所有解决方案:

hello-world 是一个简单的角度应用程序,用于显示由 IIS 托管的“hello world”。我正在使用 IIS 10.0.19 和 Angular 16.1.8

我尝试过 URL 重写正则表达式模式的多个选项,并且精确匹配还编写了处理程序和模块映射。

我还尝试过用于重定向的自定义错误页面、URL-Scan.ini 和其他可用的解决方案,但它们都不适合我。 我无法得到预期的结果。有人遇到过同样的问题吗?如果是,请建议我除了上述几点之外的正确解决方案。如何从 URL 隐藏服务器详细信息并在我的应用程序中实现。

如有任何建议,我们将不胜感激。我愿意尝试所有可能有助于解决我的问题的建议。

提前感谢大家的支持和帮助!

angular url-rewriting http-headers iis-10
1个回答
0
投票

如果您想删除“Server”响应头,请尝试以下步骤:

  1. 进入站点级别并单击“配置编辑器”

  2. 导航到“system.webServer/security/requestFiltering”并将“removeServerVariable”的值设置为“True”。

© www.soinside.com 2019 - 2024. All rights reserved.