我需要能够重定向到HTTPS(当前正在工作)和www(如果它已经不在URL中)。
如果网址不有www
,那么它可以正常工作。但是,当网址 DOES 有www
时,它会重定向并添加额外的www
,例如https://www.www.domain.com
请注意,我不想对域进行硬编码,并希望使用HTTPHOST
或类似的东西。
当前重写规则:
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
<rule name="WWW Rewrite" enabled="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
答案 0 :(得分:-1)
结束此正则表达式 - ^((?!www).)*[a-zA-Z0-9]+$
我还必须进入IIS并更改&#34;与模式不匹配&#34; to&#34;匹配模式&#34;
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
<rule name="WWW Rewrite" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^((?!www).)*[a-zA-Z0-9]+$" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>