2015-07-10 190 views
1

我們正在發佈新版本的Web應用程序,並在此過程中對新域名進行品牌更改。將舊域名重定向到保留網址的新域名

我們的應用程序都在Azure中託管。 當前應用程序 - 雲服務 新應用程序 - Azure網站

我想要實現的是將舊的鏈接從舊域重定向到新域,同時保持url部分。

例子: 用戶訪問 https://my.currentdomain.com/any/link

和將被引導到 https://my.newdomain.io/any/link

辦一個CNAME從currentdomain到NEWDOMAIN,然後在我的web.config一個URL重寫?

謝謝!

更新 - 我已經在本地測試,它做我在找什麼。我只需將舊域的cname指向新域,並且此重定向應該可以獲取鏈接。

<rule name="Redirect to new domain" stopProcessing="true"> 
     <match url="^(.*)$" /> 
     <conditions>    
     <add input="{HTTP_HOST}" matchType="Pattern" pattern="^olddomain(:\d+)?$" /> 
     </conditions> 
     <action type="Redirect" url="https://my.newdomain.io/{R:1}" redirectType="Permanent" /> 
    </rule> 

回答

1

您在Azure中託管應用程序的事實對您要找到的解決方案的影響極小或沒有影響。

當你做這些事情時,你通常也想保留你在搜索引擎中的所有積分。如果您的https://my.current.domain.com/any/linkHTTP 301 Redirect Permanent添加到新位置,則只能實現該目標。

根據項目的規模和複雜程度,這可能是一項微不足道的任務。

一個選項,只有當你想重定向少數(如一打)鏈接時纔有效。你可以在你的web.config文件中直接做到這一點:

<location path="any/link"> 
    <system.webServer> 
     <httpRedirect enabled="true" destination="https://my.newdomain.io/any/link" httpResponseStatus="Permanent" /> 
    </system.webServer> 
    </location> 

當然,這是沒有意義的,當你有一大堆的鏈接,甚至整個CMS幕後。如果是這種情況,我會選擇寫一個custom HTTP Module for IIS。這個模塊的唯一目的是檢查傳入的URI並讓它更進一步,或者生成HTTP 301重定向。

如果您使用的是來自Microsoft的最新最好的產品,則可以使用custom OWIN Middleware實現相同的(自定義HTTP模塊)。

如果只是域更改,所有路徑和查詢字符串都要保留,請查看this good article how can you do this with URL Rewrite under IIS

+0

感謝您的回覆。有100多個鏈接。示例/飼料/ {變量}和其他類似的控制器/動作類型。有沒有辦法爲olddomain.com/*/*重新定向到newdomain.com/*/*? – Eilimint

+0

謝謝 - 我在文章中使用了模式重定向,並且所有鏈接都重定向到新域,並使用/ {R:1}保留其查詢。 – Eilimint

相關問題