Best Practice für Sharepoint-Vanity-URL / Umleitung
-
05-07-2019 - |
Frage
Mein Arbeitgeber nutzt MOSS 2007 für unsere Firmen-Intranet. Es läuft nur auf sicheren http und ist auch mit der Außenwelt über ISA ausgesetzt. Im Moment habe ich eine Anfrage, eine Weiterleitung URL zu unserer Website hinzufügen, damit so etwas wie die folgenden auftreten:
intranet.mycompany.com/vanityname
Umleitungen an ->
intranet.mycompany.com/somedeeplink/default.aspx
Ich erwarte diese Art der Sache mit unseren Nutzern immer beliebter wird werden wie die Zeit vergeht. Also ich bin auf der Suche nach einer Lösung, die skaliert werden kann. Ich habe verschiedene Artikel lesen Sie ein / site / mit Spedition Meta-Tags oder eine Weiterleitungssharepoint-Seite-Typ zu erzeugen. Ich habe auch einige, die über das Hinzufügen von virtuellen Verzeichnissen, etc. direkt in IIS reden gesehen. All diese Lösungen zu sein scheinen übertrieben und zwangsläufig mehr Speicher oder Verarbeitungszeit auf dem Web-Server übernehmen.
Ich bin derzeit Neigung zu einer HTTP-Modul zu schreiben, die in der web.config und führen Umleitungen konfiguriert werden können. Ich wollte Feedback bekommen, um zu sehen, ob jemand etwas ähnliches in Sharepoint 2007 und hatte irgendwelche Vorschläge gemacht hat. Ich würde wieder gerne etwas implementieren, die später auf, ohne große Veränderungen skaliert und wird minimal Verarbeitungslast auf unserem Web-Server setzen. Dank!
Lösung
Ive implementiert URL Umleitung mit MOSS die HTTP-Modul Route. Ich dokumentierte den Code, den ich verwenden, und welche Parameter gearbeitet, um das Beste für mich hier;
http://scaredpanda.com / 2008/08 / url-Rewriting-with-sharepoint-Moos-2007 /
Werfen Sie einen Blick und lassen Sie mich wissen, ob dies hilft Ihnen, und wenn Sie Fragen haben.
Update:. oben Der Link ist nicht mehr gültig, so dass hier Text von der Seite, die ich für die URL-Umleitung verwendet
Nach einem wenig rumgespielt es, kam ich mit einem guten Weg, es zu tun. Als ich für Beispiele im Web suchen wurde, gab es sagen viele Leute, dass es konnte nicht durchgeführt werden. Aber am Ende ist es dauerte tatsächlich nicht viel, sie umzusetzen. Hier ist ein Httpmodule, die ich schrieb, die Arbeit zu tun.
Die wichtigsten Teile sind die this.app.BeginRequest + = new Eventhandler (app_BeginRequest), die Schritte vor der Anforderung und ermöglicht das Modul seiner erhaltene Umleitung auf.
Und HttpContext.Current.RewritePath (umleiten, false); die notwendigen Header schieben n so nach vorne, so dass die empfangende ASPX-Seite wird verstehen, wie richtig posten.
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
}
}
}
}
Andere Tipps
Haben Sie in Alternate Access Mappings geschaut?
Wenn Sie offen sind für eine Lösung zu bezahlen. Werfen Sie einen Blick:
KOSTENPFLICHTIGER -> http://www.muhimbi.com/Products /SharePoint-URL-Shortener.aspx
Abhängig von der Anzahl der Umleitungen mögen Sie vielleicht einen HTTP-Modul implementieren, wie angegeben), aber wie etwa Check-out
Verwenden Sie die URL Rewrite-Funktion in IIS. (Ich glaube, es ist eine IIS 7-Erweiterung)