2010-04-07 34 views
0

我想添加在訪問某些舊網站時重定向用戶的功能。舊網站的URL是未知的,但服務器名稱是相同的,例如,在Sharepoint中將用戶從舊網址重定向到另一個

舊網站的網址:

http://sharepoint/mySite/default.aspx 

新站點網址:

http://sharepoint/myNewSite/... 

有很多內MYSITE其他頁面,其中大部分必須被重定向到新的網站,但也有例外情況(例如,用戶仍然可以查看站點內的文檔)。我認爲我必須以某種方式通過編程方式來捕獲http請求並自己讀取URL。作爲沒有共享點的導師,我有一個快速的谷歌,並發現編寫一個Web部分可能是我的情況的最佳選擇。

但我只是想知道,考慮到我的情況和需求,正在編寫一個Web部件,或者編程的東西,真的是理想的解決方案嗎?還是有更快,更快的方式來實現我想要使用Sharepoint?

謝謝。

回答

0

你可以做到這一點的方法有三種

  1. 創建自定義HTTP模塊(好的解決方式)
  2. 編寫JavaScript代碼在您的舊網站的主網頁重定向到新的頁面(location.href)(輕鬆地創建,但導航從客戶端發生)
  3. 撰寫與重定向代碼的WebPart和舊網站的母版頁(點1相比更容易)
2

您可以實現部署,它偵聽System.Web.HttpApplication.BeginRequest事件,檢測請求url是否指向舊站點,並在必要時重定向到新站點。

Sharepoint的這一部分涉及創建一個Microsoft.SharePoint.Administration.SPWebConfigModification,它將對模塊的引用添加到您擁有的每個Web前端的web.config文件中。如果你實現了這個作爲一個Web應用程序級別的功能,爲功能接收激活方法的代碼會是這個樣子:

public override void FeatureActivated(SPFeatureReceiverProperties properties) 
{ 
    var webApplication = (SPWebApplication)properties.Feature.Parent; 
    var redirectionModuleType = typeof(MyRedirectionModule); 
    var modification = new SPWebConfigModification() 
    { 
     Name = "add[@name='MyRedirectionModule']", 
     Path = "configuration/system.web/httpModules", 
     Owner = "MyModule", 
     Sequence = 0, 
     Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode, 
     Value = "<add name=\"MyRedirectionModule\" type=\"" + redirectionModuleType.FullName + ", " + redirectionModuleType.Assembly.FullName + "\" />" 
    }; 
    webApplication.WebConfigModifications.Add(modification); 
    webApplication.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); 
    webApplication.Update(); 
} 
0

而不是修改母版頁就可以自動考慮注入一些JavaScript邏輯放到每一頁處理重定向的網站集。

看一看our free SharePoint Infuser tool

0

如果您正在使用負載均衡器或反向代理(如ISA Server),則可以在這些級別實施重定向規則。

相關問題