我希望添加在用户访问某些旧网站时重定向的功能。旧站点的URL未知,但服务器名称相同,例如
旧网址:
http://sharepoint/mySite/default.aspx
新网址网址:
http://sharepoint/myNewSite/...
mySite中有很多其他页面,其中大部分都必须重定向到新网站,但也有例外(例如,用户仍然可以查看网站内的文档)。我以为我必须通过某种方式捕获http请求并以自己的方式读取URL来以编程方式执行此操作。作为没有共享点的专家,我有一个快速的谷歌,并发现写一个网络部分可能是我的情况的最佳选择。
但我只是想知道,鉴于我的情况和需求,是编写网络部分,还是以编程方式编写,真的是理想的解决方案?或者是否有更快更快的方法来实现我想要的Sharepoint?
感谢。
答案 0 :(得分:2)
您可以实施监听System.Web.IHttpModule
事件的System.Web.HttpApplication.BeginRequest
,检测请求网址是否指向旧网站,并在必要时重定向到新网站。
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();
}
答案 1 :(得分:0)
你可以用三种方式做到这一点
答案 2 :(得分:0)
您可以考虑自动将一些JavaScript逻辑注入处理重定向的网站集的每个页面,而不是修改母版页。
答案 3 :(得分:0)
如果您使用负载均衡器或ISA Server等反向代理,则可以在这些级别实施重定向规则。
答案 4 :(得分:0)
有人已经为你做了这件事:))
见SharePoint Smart 404 Feature。它允许您添加重定向规则以创建虚荣URL并很好地处理404。