Como configurar Redirect do domínio com e sem www


Índice

É bastante recomendado permitir que o usuário possa acessar o seu site com ou sem www na url.

Por exemplo: http://educoutinho.com.br e http://www.educoutinho.com.br

No entanto, para evitar duplicação na indexação do seu site pelo google é importante não manter o seu site respondendo tanto na versão sem www e com www. O que deve ser feito é um redireonamento 301 de uma url para outra.

É o que acontece quando você acessa o site do Facebook, ao digitar: facebook.com, o browser é redirecionado para www.facebook.com

No IIS é possível configurar o redirecionamento de duas formas, usando URL Rewrite ou HTTP Redirect.

No entanto, o URL Rewrite é uma opção bastante mais flexível, então vou mostrar somente como configurar utilizando essa opção.

1- Instalar o URL Rewrite

Para instalar a feature do URL Rewrite no IIS, faça o seguinte:

1- Abrir o Get Web Plataform Components do IIS:

2- Pesquisar por “URL Rewrite” e adicionar:

3- Completar a instalação:

4- O “Url Rewrite” irá aparecer no IIS:

2- Configurar bind no site

O “bind” do site do IIS deve ser configurado para responder tanto pelo domínio com www, quanto sem:

3- Configurar o redirecionamento

Você pode fazer as configurações de redirecionamento utilizando a interface do IIS (URL Rewrite / Add Rule), ou então alterar diretamente o arquivo web.config do site.

Se o seu site não tiver um arquivo web.config, basta criar o arquivo no diretório do site.

3.1- Redirecionamento “http://www.dominio.com.br” -> “http://dominio.com.br”

<configuration>
    <system.webServer>
		<rewrite>
			<rules>
				<rule name="Redirect from www" stopProcessing="true">
					<match url=".*" />
					<conditions>
						<add input="{HTTP_HOST}" pattern="www.*" />
					</conditions>
					<action type="Redirect" url="http://dominio.com.br/{R:0}" />
				</rule>
			</rules>
		</rewrite>
    </system.webServer>
</configuration>

3.2- Redirecionamento “http://dominio.com.br” -> “http://www.dominio.com.br”

<configuration>
    <system.webServer>
		<rewrite>
			<rules>
				<rule name="Redirect to www" stopProcessing="true">
					<match url=".*" />
					<conditions>
						<add input="{HTTP_HOST}" pattern="^dominio.com.br$" />
					</conditions>
					<action type="Redirect" url="http://www.dominio.com.br/{R:0}" />
				</rule>
			</rules>
		</rewrite>
    </system.webServer>
</configuration>

3.3- Redirecionamento “http://dominio.com.br” -> “https://dominio.com.br”

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect to https" stopProcessing="true">
                    <match url=".*" negate="false" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTPS}" pattern="OFF" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

3.4- Redirecionamento “http://www.dominio.com.br” -> “https://dominio.com.br” e http://dominio.com.br” -> “https://dominio.com.br”

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect from www" stopProcessing="true">
                  <match url=".*" />
                  <conditions>
                    <add input="{HTTP_HOST}" pattern="www.*" />
                  </conditions>
                  <action type="Redirect" url="https://dominio.com.br/{R:0}" />
                </rule>
                <rule name="Redirect to https" stopProcessing="true">
                  <match url=".*" negate="false" />
                  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTPS}" pattern="OFF" />
                  </conditions>
                  <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

IMPORTANTE:

1- Cache do browser: Quando você for testar isso no browser, pode ser necessário fechar o browser e abri-lo novamente porque o browser faz cache dos redirecionamentos dos domínios, outra opção é abrir uma aba anônima no browser

2- Bind do IIS: Lembre-se que você precisa configurar no IIS o bind de todos os domínios que você vai utilizar, por exemplo, se você vai redirecionar “http://www.dominio.com.br” -> “https://dominio.com.br” e http://dominio.com.br” -> “https://dominio.com.br” você precisa configurar no IIS os seguintes binds:


Comentários