【问题标题】:Azure Web App Angular Not redirecting to wwwAzure Web App Angular 未重定向到 www
【发布时间】:2020-04-22 18:36:51
【问题描述】:

我的 web.config 中有以下内容

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
      <rewrite>
        <rules>
          <rule name="Angular" stopProcessing="true">
            <match url="^(.*)$" ignoreCase="false" />
            <conditions logicalGrouping="MatchAll">
              <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
            </conditions>
            <action type="Rewrite" url="index.html" appendQueryString="true"/>
          </rule>
          <rule name="Redirect to www" stopProcessing="true">
              <match url="(.*)" />
              <conditions trackAllCaptures="false">
                <add input="{HTTP_HOST}" pattern="^mydomain.com$" />
              </conditions>
              <action type="Redirect" 
                url="{MapProtocol:{HTTPS}}://www.mydomain.com/{R:1}" />
            </rule>
        </rules>
          <rewriteMaps>
            <rewriteMap name="MapProtocol">
              <add key="on" value="https" />
              <add key="off" value="http" />
            </rewriteMap>
        </rewriteMaps>
      </rewrite>
    </system.webServer>
</configuration>

我的 angular.json 中的资产中有以下内容

    "assets": [
      "src/favicon.ico",
      "src/assets",
      "src/web.config"
    ],

但我的应用没有重定向。

问题是我有一个适用于 www.mydomain.com 的应用服务托管证书设置

我有两个自定义域设置 www.mydomain.com(这个允许我将绑定添加到应用服务证书) mydomain.com(未绑定,因为我无法添加证书)

所以我想我可以通过重定向来修复它以始终访问 www。但它似乎不起作用

【问题讨论】:

  • 我已经更新了我的答案,没有使用应用程序网关和前门。您可以尝试一下,如果您需要进一步的帮助,请告诉我。

标签: angularjs azure url-rewriting azure-web-app-service azure-webapps


【解决方案1】:

更新

您可以RewriterConfig在web.config文件中设置url重写功能。更多细节你可以在另一个post看到我的回答。

私人

App Service集成的Web Server无法完全控制,这是PaaS产品的属性之一。

App Service 只能使用 IIS 的部分功能。需要在/site/wwwroot(即你开发的项目的根目录)下的web.config文件中进行配置。 所有可用的 IIS 功能只能通过web.config 文件进行配置。

解决方案:

• 尝试在 Web 配置文件中添加重定向规则。如果失败,只能使用应用网关的重写功能。

• 以下是应用网关的一些关于重写特性的文档供您参考。

Redirection

Redirect web traffic

Troubleshoot--App service issues

【讨论】:

  • 我有 web.config 文件,但它在 wwwRoot>>Package>>WebsiteName>>dist>>web.config 下,它总是必须在根目录下吗?我可以在那里手动添加一个吗?
  • 我觉得你应该把 dist 文件夹的内容放到 wwwroot 路径下。@MicroMan
  • 这就是我拥有它的地方,并且上面的重定向在那里,但没有乐趣......
  • 好的,我已经测试了应用服务中的url重写功能。只需在 web.config 中配置它,它适用于安装 URL 重写模块的 iis,但不适用于 azure。所以我建议你使用应用程序网关。在此服务中,可能具有您想要的相同功能。@MicroMan
  • 你应该在应用网关的web.config中设置url rewrite部分的配置,这样就可以正常使用了。而不是只在web.config中设置,web.config文件中的配置仅用于本地测试。@MicroMan
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多