簡體   English   中英

重寫規則:有關正則表達式模式的問題

[英]Rewrite Rule: Question about regex pattern

我不知道為什么某些重寫規則不起作用。 我有這個規則:

<rule name="CanonicalHostNameRule1" enabled="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="testsite\.com" negate="true" />
  </conditions>
  <action type="Redirect" url="https://www.testsite.com/{R:1}" />
</rule>

當我進入IIS並使用URL重寫模塊時,我使用“ http://testsite.com ”進行了測試。 這可行。 但是將更新的web.config放入生產環境后,這些是我在url中鍵入以下內容的結果:

通過輸入以下變體形式,我可以訪問該網站:

https://www.testsite.com
http://www.testsite.com
www.testsite.com
testsite.com 

但是我在輸入時收到錯誤消息“ testsite.com拒絕連接”:

https://testsite.com
http://testsite.com

我缺少什么,這阻礙了最后兩個工作? 似乎我擁有的重寫規則應捕獲所有請求。

先感謝您!

我的猜測是,對於最后兩個示例,它們的{HTTP_HOST}將沒有www,這意味着它將與您的條件匹配,從而導致negate屬性跳過規則操作。

我建議您啟用IIS Failed Request TracingIIS失敗請求跟蹤) ,以便准確確定為什么重寫規則不適用於這些值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM