沒有您的正則表達式的問題,但這不是一般它如何規範域名規則(是什麼你想在這種情況下)成立。一般而言,您想匹配每進入您的服務器的URL,然後篩選CGI環境變量的值(在這種情況下,HTTP_HOST
)。您的重寫規則會是這個樣子:
<rule name="CanonicalHostNameRule1" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^mywebsite\.com$" negate="true" />
</conditions>
<action type="Redirect" url="https://mywebsite.com/{R:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
這將完成是前進,以便在不http://mywebsite.com
或https://mywebsite.com
到https://mywebsite.com
網址的所有請求。實際的URL在比賽中被捕獲並且放入參數{R:1}
中 - 這樣,如果你去說http://www.mywebsite.net/home.php
,它將被重定向到https://mywebsite.com/home.php
。
另外,如果要強制HTTPS,您可以執行以下操作:
<rule name="CanonicalHostNameRule1" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="^on$" negate="true" />
<add input="{HTTP_HOST}" pattern="^mywebsite\.com$" negate="true" />
</conditions>
<action type="Redirect" url="https://mywebsite.com/{R:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
第一個條件將檢查是否cgi.HTTPS
爲「開」 ......如果它不是,重定向到一個HTTPS網址。
注:如果要重定向只mywebsite.net
網址,則該情況可能是這樣的:
<add input="{HTTP_HOST}" pattern="mywebsite\.net$" />
希望這有助於。