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



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

这是我在web配置部分中的块。

<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计算regex,并使用不同的url进行测试。它缝合在一起锻炼,表达式紧贴文本。因此,否定="true"应该反转该语句,因此只有没有给定字符串的url才匹配并重写。

哦,顺便说一句,web.config xml接缝是可以的,因为当我将regex改回原始时,网站就可以工作了。

所以这是有效的:

<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" />

相关内容

  • 没有找到相关文章

最新更新