SharePoint的个性化网址/重定向最佳实践(Best practice for SharePo

2019-09-21 08:19发布

我的雇主使用MOSS 2007年我们公司内部网。 它仅仅运行在安全的HTTP,并通过ISA也暴露给外界。 我现在有一个转发网址添加到我们的网站,这样像下面这样将出现一个要求:

intranet.mycompany.com/vanityname
重定向到 - > intranet.mycompany.com/somedeeplink/default.aspx

我完全相信,随着时间的推移这种事情将成为我们的用户更受欢迎。 所以我要寻找一个扩展的解决方案。 我已阅读有关创建/网站/与转发meta标签或转发的SharePoint页面类型的各种文章。 我也看到了一些谈论直接在IIS中添加虚拟目录,等等。 所有这些解决方案似乎是矫枉过正,并不可避免地占用更多的内存或处理时间在Web服务器上。

我目前倾向于写,可以在web.config配置和执行重定向一个HTTP模块。 我希望得到的反馈,看是否有人在做SharePoint 2007中类似的东西有任何建议。 同样,我想实现的东西,如果没有后来做了重大变化,并打算把最小的处理负担,我们的网络服务器上的扩展。 谢谢!

Answer 1:

香港专业教育学院使用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
            }
        }
    }
}


Answer 2:

你有没有到备用访问映射?

http://technet.microsoft.com/en-us/library/cc263208.aspx



Answer 3:

如果你是开放的一个解决方案支付。 看一看:

不是免费的- > http://www.muhimbi.com/Products/SharePoint-URL-Shortener.aspx



Answer 4:

根据重定向的数量你可能要实施有关检查出的规定的HTTP模块),但如何

FREE - > http://www.codeplex.com/sharepointsmart404



Answer 5:

使用IIS的URL重写功能。 (我相信这是一个IIS 7的扩展)

http://www.iis.net/download/urlrewrite



文章来源: Best practice for SharePoint vanity url/redirection