我的规则重定向中的这个正则表达式有什么问题? (web.config)

What is wrong with this regex in my rule redirect? (web.config)

这是一个 Azure WebApp web.config 问题。 我想将所有非 HTTPS 请求重定向到相同的 url 但使用 HTTPS,基本上用 HTTPS 替换 HTTP。 但如果 url 包含以下字符串则不会:“/config/add_new_user?login=xxx&w=1”.

这是我在 web-config 部分中的块。

<rule name="Force HTTPS" stopProcessing="true">
   <match url="(\/config\/add_new_user\?login=license_wizard\&w=1)" negate="true" />
   <conditions>
      <add input="{HTTPS}" pattern="OFF" />
   </conditions>
   <action type="Rewrite" url="public/redirect.html" />
</rule>

但我收到错误 500.19 - 配置文件格式不正确 XML

我使用 https://regex101.com/#javascript 计算正则表达式并使用不同的 url 进行测试。它接缝工作,表达击中文本。 所以 negate="true" 应该反转语句,所以只有没有给定字符串的 urls 被匹配并因此被重写。

哦,顺便说一句,web.config xml 接缝没问题,因为当我将正则表达式改回原来的网站时,网站就可以正常工作了。

所以这可行:

<match url="(.*)" />

而这不是:

<match url="(\/config\/add_new_user\?login=license_wizard\&w=1)" negate="true" />

& 在 XML 个文件中必须编码为 &amp;

<match url="(\/config\/add_new_user\?login=license_wizard\&amp;w=1)" negate="true" />