Лучшая практика для URL-адреса / перенаправления SharePoint vanity
-
05-07-2019 - |
Вопрос
Мой работодатель использует MOSS 2007 для внутренней сети нашей компании.Он работает исключительно по защищенному протоколу http, а также доступен внешнему миру через ISA.В настоящее время у меня есть запрос на добавление URL-адреса пересылки на наш сайт, чтобы произошло что-то вроде следующего:
intranet.mycompany.com/vanityname
перенаправляет на ->
intranet.mycompany.com/somedeeplink/default.aspx
Я полностью ожидаю, что такого рода вещи со временем станут более популярными среди наших пользователей.Поэтому я ищу масштабируемое решение.Я читал различные статьи о создании /site / с мета-тегами пересылки или типом страницы пересылки SharePoint.Я также видел некоторые, в которых говорится о добавлении виртуальных каталогов и т.д. Непосредственно в IIS.Все эти решения кажутся излишними и неизбежно занимают больше памяти или времени обработки на веб-серверах.
В настоящее время я склоняюсь к написанию http-модуля, который можно настроить в web.config и выполнять перенаправления.Я хотел получить отзыв, чтобы узнать, делал ли кто-нибудь еще что-то подобное в SharePoint 2007 и были ли у него какие-либо предложения.Опять же, я хотел бы реализовать что-то масштабируемое без внесения серьезных изменений в дальнейшем и с минимальной нагрузкой на наши веб-серверы.Спасибо!
Решение
Я реализовал перенаправление URL-адресов с помощью MOSS, используя HTTP-модуль route.Я задокументировал код, который я использовал, и какие параметры работали здесь лучше всего для меня;
http://scaredpanda.com/2008/08/url-rewriting-with-sharepoint-moss-2007/
Взгляните и дайте мне знать, если это поможет вам и если у вас возникнут какие-либо вопросы.
Обновить: Ссылка выше больше не действительна, поэтому здесь текст со страницы, которую я использовал для перенаправления URL.
Немного повозившись с этим, я придумал хороший способ сделать это.Когда я искал примеры в Интернете, было много людей, говорящих, что это невозможно сделать.Но, в конце концов, для его реализации на самом деле не потребовалось много времени.Вот HttpModule, который я написал для выполнения этой работы.
Ключевыми элементами являются this.app.BeginRequest += new EventHandler(app_BeginRequest), который выполняет шаги перед запросом и позволяет модулю включить его перенаправление.
И HttpContext.Current.Перезаписать путь (перенаправление, false);переместит необходимые заголовки 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://www.muhimbi.com/Products/SharePoint-URL-Shortener.aspx
В зависимости от количества перенаправлений вы можете захотеть реализовать HTTP-модуль, как указано) но как насчет проверки
СВОБОДНО -> http://www.codeplex.com/sharepointsmart404
Используйте функцию перезаписи URL-адреса в IIS.(Я полагаю, что это расширение IIS 7)