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!

War es hilfreich?

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?

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

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

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

Verwenden Sie die URL Rewrite-Funktion in IIS. (Ich glaube, es ist eine IIS 7-Erweiterung)

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top