我的雇主使用MOSS 2007年我们公司内部网。 它仅仅运行在安全的HTTP,并通过ISA也暴露给外界。 我现在有一个转发网址添加到我们的网站,这样像下面这样将出现一个要求:
intranet.mycompany.com/vanityname
重定向到 - > intranet.mycompany.com/somedeeplink/default.aspx
我完全相信,随着时间的推移这种事情将成为我们的用户更受欢迎。 所以我要寻找一个扩展的解决方案。 我已阅读有关创建/网站/与转发meta标签或转发的SharePoint页面类型的各种文章。 我也看到了一些谈论直接在IIS中添加虚拟目录,等等。 所有这些解决方案似乎是矫枉过正,并不可避免地占用更多的内存或处理时间在Web服务器上。
我目前倾向于写,可以在web.config配置和执行重定向一个HTTP模块。 我希望得到的反馈,看是否有人在做SharePoint 2007中类似的东西有任何建议。 同样,我想实现的东西,如果没有后来做了重大变化,并打算把最小的处理负担,我们的网络服务器上的扩展。 谢谢!
香港专业教育学院使用HTTP模块实现路由重定向的URL与MOSS。 我记录我使用的代码和什么参数在这里工作最适合我;
http://scaredpanda.com/2008/08/url-rewriting-with-sharepoint-moss-2007/
看看,让我知道如果这能帮助你,如果你有任何问题。
更新:上面的链接不再有效,所以在这里从我用URL重定向的页面文本。
乱搞一点点之后,我想出了一个好办法做到这一点。 当我正在寻找的例子在网络上有很多人说,这不可能做到。 但最终,它实际上并没有花太多实现它。 下面是我写的做这项工作的HTTP模块。
关键件是this.app.BeginRequest + =新的EventHandler(app_BeginRequest),该步骤在所述请求中的前部和允许模块,以获取其重定向。
和HttpContext.Current.RewritePath(重定向,假); 将推动必要的标头n使得前进以便接收.aspx页面中会明白如何正确后回来。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Reflection;
using System.Collections;
using System.Text;
using System.Web;
using System.Web.Caching;
using System.Web.SessionState;
using System.Security.Cryptography;
using System.Configuration;
using System.Threading;
using System.IO;
using System.Security;
using System.Security.Principal;
namespace ScaredPanda
{
public sealed class RewriteHttpModule : IHttpModule
{
HttpApplication app = null;
///
/// Initializes the httpmodule
///
public void Init(HttpApplication httpapp)
{
this.app = httpapp;
this.app.BeginRequest += new EventHandler(app_BeginRequest);
}
public void app_BeginRequest(Object s, EventArgs e)
{
try
{
//determine if the income request is a url that we wish to rewrite.
//in this case we are looking for an extension-less request
string url = HttpContext.Current.Request.RawUrl.Trim();
if (url != string.Empty
&& url != "/"
&& !url.EndsWith("/pages")
&& !url.Contains(".aspx")
&& url.IndexOf("/", 1) == -1)
{
//this will build out the the new url that the user is redirected
//to ie pandas.aspx?pandaID=123
string redirect = ReturnRedirectUrl(url.Replace("/", ""));
//if you do a HttpContext.Current.RewritePath without the 'false' parameter,
//the receiving sharepoint page will not handle post backs correctly
//this is extremely useful in situations where users/admins will be doing a
//'site actions' event
HttpContext.Current.RewritePath(redirect, false);
}
}
catch (Exception ex)
{
//rubbish
}
}
}
}
你有没有到备用访问映射?
http://technet.microsoft.com/en-us/library/cc263208.aspx
如果你是开放的一个解决方案支付。 看一看:
不是免费的- > http://www.muhimbi.com/Products/SharePoint-URL-Shortener.aspx
根据重定向的数量你可能要实施有关检查出的规定的HTTP模块),但如何
FREE - > http://www.codeplex.com/sharepointsmart404
使用IIS的URL重写功能。 (我相信这是一个IIS 7的扩展)
http://www.iis.net/download/urlrewrite