2012-04-05 137 views
2

我有一個內容管理的ASP.NET網站,它以不同語言運行相同版本的網站(例如mysite.com,mysite.fr, mysite.eu等)。我被要求創建一個從我們法國網站上的一個頁面重定向到我們歐洲網站上的一個頁面,所以我啓動了IIS內的URL重寫,並試圖編寫規則和地圖來執行此操作。失敗後,我試圖將其寫入Web.config文件,但再次無濟於事。使用Web.Config從域中的一個頁面重定向到另一個頁面上的頁面

要清楚,我需要:

  • http://www.mysite.fr/publication/jobs.aspx重定向到 http://www.mysite.eu/jobs.aspx
  • http://www.mysite.fr/sign-in.aspx 重定向到http://www.mysite.eu/sign-in.aspx

有誰知道我該怎麼做,或者這是否可以在具有多個域的ASP.NET網站上完成?

+0

您是否嘗試過使用Global.ascx文件的Application_BeginRequest事件來重寫url? – 2012-04-05 09:07:26

+0

我有,但由於我的網站是內容管理,我無法提供有效的虛擬URL。 – AlexT 2012-04-05 09:43:40

回答

1

您可以使用URL重寫進行此操作。

下面是我使用的一個示例。

<rule name="Redirect .co.uk" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
    <add input="{HTTP_HOST}" pattern="^uk\.test\.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.test.co.uk/{R:1}" /> 
</rule> 

這將檢查請求的的{HTTP_HOST},如果匹配uk.test.com,重定向到新的URL,但保留頁/文件夾路徑({R:1})。

加入/出版/使事情有點麻煩,但(我的正則表達式是不完美的:-)類似。(.*)\/publication\/(/*)或東西),它可以寫入到原來的比賽。

HTH

+0

這幾乎就是我已經使用過的,雖然我只重定向一頁,而且看起來這個代碼沒有映射到這個頁面的映射。 – AlexT 2012-04-05 10:28:19

+0

你能編輯你的問題以包括你已經嘗試過的URL重寫嗎? – ianbailey 2012-04-05 10:43:29

相關問題