Pergunta

Os meus usos empregador MOSS 2007 para nossa intranet da empresa. Corre-se unicamente em garantir http e também está exposta ao mundo exterior através de ISA. Atualmente tenho um pedido para adicionar a URL de encaminhamento para o nosso site para que algo como ocorrerá o seguinte:

intranet.mycompany.com/vanityname
redirecionamentos para -> intranet.mycompany.com/somedeeplink/default.aspx

eu espero esse tipo de coisa vai se tornar mais popular com os nossos usuários, como o tempo passa. Então eu estou procurando uma solução que escalas. Eu li vários artigos sobre a criação de um / site / com encaminhamento de meta tags ou um tipo de página SharePoint encaminhamento. Eu também vi alguns que falam sobre a adição de diretórios virtuais, etc diretamente no IIS. Todas estas soluções parecem ser um exagero e, inevitavelmente, ocupam mais memória ou tempo de processamento nos servidores da web.

Atualmente, estou inclinado para escrever um http módulo que pode ser configurado no web.config e realizar redirecionamentos. Eu queria obter feedback para ver se alguém já fez algo semelhante no SharePoint 2007 e tinha alguma sugestão. Mais uma vez, eu gostaria de implementar algo que as escalas sem fazer grandes alterações mais tarde e vai colocar carga de processamento mínimo sobre os nossos servidores web. Obrigado!

Foi útil?

Solução

Ive implementado url redirecionamento com MOSS usando a rota módulo HTTP. Eu documentei o código que eu usei e que parâmetros trabalhou o melhor para mim aqui;

http://scaredpanda.com / 2008/08 / url-reescrevendo-com-sharepoint-moss-2007 /

Dê uma olhada e deixe-me saber se isso ajuda você e se você tiver quaisquer perguntas.

Update:. O link acima já não é válida, então aqui texto da página que eu usei para URL de redirecionamento

Depois de brincar um pouquinho, eu vim com uma boa maneira de fazê-lo. Quando eu estava à procura de exemplos na web, havia um monte de gente dizendo que não poderia ser feito. Mas no final ele realmente não demorou muito para implementá-lo. Aqui está um HttpModule que eu escrevi para fazer o trabalho.

As peças-chave são a this.app.BeginRequest + = new EventHandler (app_BeginRequest) que passos em frente do pedido e permite que o módulo para obter o seu redirecionamento.

E HttpContext.Current.RewritePath (redirecionamento, false); vai empurrar os cabeçalhos necessários n tais frente de modo que a página .aspx receber vai entender como voltar corretamente post.

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
            }
        }
    }
}

Outras dicas

Você já olhou nos mapeamentos de acesso alternativo?

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

Se você está aberto a pagar por uma solução. Dê uma olhada:

NOT FREE -> http://www.muhimbi.com/Products /SharePoint-URL-Shortener.aspx

Dependendo do número de redirecionamentos que você pode querer implementar um HTTP módulo como indicado), mas como sobre a verificação para fora

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

Use o recurso de reconfiguração de URL no IIS. (Eu acredito que é um IIS 7 extensão)

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top