none
Melhor forma de aplicar o redirect RRS feed

  • Pergunta

  • Tem um site que preciso redirecionar para outro link, mas não querem apagar o site, então estou a procura de uma melhor forma de fazer assim que entra no index. Eu pensei em colocar um response.redirect no pageload da primeira página ou se crio uma nova aspx para fazer isso, qual seria melhor opção ou que podem me sugerir para isso/
    quinta-feira, 11 de fevereiro de 2016 20:42

Respostas

  • Bom, nesse caso você pode utilizar o Global.asax com este código:
    <%@ Application Language="C#" %>
    <script RunAt="server">
    
        void Application_BeginRequest(Object sender, EventArgs e)
        {
            //Use 301 para redirect permanente.
            //Response.StatusCode = 301;
            HttpContext context = HttpContext.Current;
            if (!(context != null && context.Request != null && context.Request.RawUrl.StartsWith("/administrador")))
                Response.Redirect("http://site2.com.br");
        }
    
    </script>
    

    Esse código vai fazer que qualquer URL que inicie com "/administrador" (depois do host) não seja redirecionado.
    • Marcado como Resposta Marcos SJ sexta-feira, 12 de fevereiro de 2016 17:48
    sexta-feira, 12 de fevereiro de 2016 02:08

Todas as Respostas

  • Boa noite,

    Você pode fazer isso através do redirecionamento via IIS, conforme explico no link abaixo:

    http://smcode.com.br/RedirecionamentoIIS.aspx

    Abs.

    Bruno Destro


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/

    quinta-feira, 11 de fevereiro de 2016 22:19
  • Sugiro que utilize a dica do Bruno, pois é uma boa opção e no artigo dele tem o passo a passo.

    Caso você não tenha acesso ao IIS, você pode fazer isso via Web.config ou Global.asax.

    Web.Config

    <system.webServer>
      <modules runAllManagedModulesForAllRequests="true"/>
      <rewrite>
        <rules>
          <rule name="Adicionar www" patternSyntax="ECMAScript" stopProcessing="true">
            <match url="(.*)" ignoreCase="true"/>
            <conditions logicalGrouping="MatchAny">
              <add input="{HTTP_HOST}" pattern="^(www.)?host1.(com|adv\.br)$"/>
            </conditions>
            <action type="Redirect" url="http://www.host2.com.br/{R:1}" redirectType="Permanent"/>
          </rule>
        </rules>
      </rewrite>
    </system.webServer>

    Global.asax
    <%@ Application Language="C#" %>
    <script runat="server">
    
        void Application_BeginRequest(Object sender, EventArgs e)
        {        
            //Use 301 para redirect permanente.
            //Response.StatusCode = 301;
            Response.Redirect("http://site2.com.br");
        }
        
    </script>
    

    quinta-feira, 11 de fevereiro de 2016 22:54
  • Acho que não posso fazer isso, esqueci de mencionar, a parte de administração ainda tem que ser acessada. Algo como www.site.com/administrador. Esse url ainda deve ser acessada.
    sexta-feira, 12 de fevereiro de 2016 00:03
  • Bom, nesse caso você pode utilizar o Global.asax com este código:
    <%@ Application Language="C#" %>
    <script RunAt="server">
    
        void Application_BeginRequest(Object sender, EventArgs e)
        {
            //Use 301 para redirect permanente.
            //Response.StatusCode = 301;
            HttpContext context = HttpContext.Current;
            if (!(context != null && context.Request != null && context.Request.RawUrl.StartsWith("/administrador")))
                Response.Redirect("http://site2.com.br");
        }
    
    </script>
    

    Esse código vai fazer que qualquer URL que inicie com "/administrador" (depois do host) não seja redirecionado.
    • Marcado como Resposta Marcos SJ sexta-feira, 12 de fevereiro de 2016 17:48
    sexta-feira, 12 de fevereiro de 2016 02:08