2016-01-13 69 views
0

我想在IIS中實現規範名稱的url重定向,事情是我使用Azure,因此它需要在web.config中完成。Azure網站的URL重定向

有2個域名www。 示例 .com和www。 example1 .com,還有一個博客www.example1.com/ 博客所有上述網址與我們沒有www需要重定向到www。 example1 .com並保留任何文字.com後的博客等

我想實現以下,但要麼不能解決URL或無限循環,我不太熟悉正則表達式,所以可以似乎並沒有讓所有的東西都起作用。

這裏是我迄今爲止

<rule name="Root Redirect" stopProcessing="true"> 
        <match url=".*" negate="false" /> 
        <action type="Redirect" url="http://www.example1.com/{R:0}" /> 
        <conditions trackAllCaptures="true"> 
         <add input="{HTTP_HOST}" pattern="^www\.example.com$" /> 
        </conditions> 
       </rule> 

       <rule name="www Redirect" patternSyntax="Wildcard" stopProcessing="true"> 
        <match url=".*" negate="false" /> 
        <action type="Redirect" url="http://www.example1.com/{R:1}" /> 
        <conditions trackAllCaptures="true"> 
         <add input="{HTTP_HOST}" pattern="http://example1.com" /> 
        </conditions> 
       </rule> 

上面的代碼適用於所有的情況下,除了2(罰全中鉻錯誤)和4(無重定向發生在所有)。希望這有助於以及在此先感謝:-)

回答

0

規則強制執行域名WWW:

<rule name="WWW" enabled="true" stopProcessing="true"> 
    <match url=" (.*)" /> 
    <conditions > 
    <add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" /> 
</rule> 

從另一個域名重定向規則(逃避所有周期):

<rule name="Root Redirect" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTP_HOST}" pattern="^(www)?\.example\.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.example1.com/{R:1}" /> 
</rule> 
+0

謝謝@viperguynaz。我仍然使用上面的代碼獲得相同的結果。這裏是正則表達式失敗的情況,「http:// example.com」會拋出DNS_PROBE_FINISHED_NXDOMAIN,而「http:// example1.com」顯示爲「http:// example1.com」而不是「www .example1.com」 「PS: - 有意在URL中添加空格以在帖子上完全顯示網址 – user5785372

+0

DNS_PROBE_FINISHED_NXDOMAIN已修復......這是一個問題和CNAME條目丟失的DNS級別。 – user5785372

+0

在根重定向後移動WWW並將Roo重定向的stopProcessing更改爲false,然後更新WWW以評估example1 – viperguynaz