por Cesar Cassiano Schimanco

Redirecionar URL sem “www” para “www” Global.asax e Web.config

Se você precisa fazer um redirecionamento de URL acessada sem "www" para URL com "www" (cbsa.com.br para www.cbsa.com.br), você pode usar o Global.asax ou o Web.config.

Como fazer uma regra de reescrita no web.config para a URL sem "www" ir para a URL com "www"?
Veja o exempo:

<?xml version="1.0"?>
<configuration>
  ....
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Adicionar www" >
        <match url="(.*)" ignoreCase="true" />
        <conditions>
          <add input="{HTTP_HOST}" pattern="^cbsa\.com\.br" />
        </conditions>
        <action type="Redirect" url="http://www.cbsa.com.br/{R:1}" redirectType="Permanent" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
</configuration>


Agora vamos usar o Global.asax para fazer o redirect da URL sem "www" para a URL com "www".

protected void Application_BeginRequest(object sender, EventArgs e)
{
    //Pega o endereço atual do site
    string authority = HttpContext.Current.Request.Url.Authority;
    //endereço correto
    string url = "www.cbsa.com.br";
    //Verifica se não é localhost e nem a URL correta.
    if (authority.IndexOf("localhost") != 0 && authority.IndexOf(url) != 0)
    {
        //Definir como página movida permanentemente
        //isso vai evitar indexação do Google nas páginas erradas.
        Response.StatusCode = 301;
        //Redirecioanando para a URL com www.
        Response.Redirect("http://" + url + HttpContext.Current.Request.Url.PathAndQuery, true);
    }
}

 

Comentários

Carregando comentários

Postar um novo comentário



Processando...