Я реализовал перенаправление URL с помощью MOSS, используя маршрут модуля HTTP. Я задокументировал код, который использовал, и какие параметры работали для меня лучше всего здесь;
http://scaredpanda.com/2008/08/url-rewriting-with-sharepoint-moss-2007/
Посмотрите и дайте мне знать, если это поможет вам, и если у вас есть какие-либо вопросы.
Обновление: Ссылка выше недействительна, поэтому здесь текст со страницы, которую я использовал для перенаправления URL.
Поработав немного, я нашел хороший способ сделать это. Когда я искал примеры в Интернете, многие говорили, что это невозможно. Но, в конце концов, для его реализации не потребовалось много времени. Вот HttpModule, который я написал для работы.
Ключевыми элементами являются this.app.BeginRequest + = new 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
}
}
}
}