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

时间:2015-11-20 16:30:12

标签: regex 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来计算正则表达式并使用不同的网址进行测试。它接缝处理,表达点击文本。 因此,negate =“true”应该反转该语句,因此只有没有给定字符串的url才会被匹配并因此被重写。

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

这样可行:

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

而这不是:

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

1 个答案:

答案 0 :(得分:3)

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

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