Nginx - Redirecionando www para apenas o nome do domínio ou vice-versa

Publicado por Fábio Berbert de Paula em 01/07/2020

[ Hits: 1.882 ]

Blog: https://fabio.automatizando.dev

 


Nginx - Redirecionando www para apenas o nome do domínio ou vice-versa



Por questões de padronização, é comum você querer que seu domínio responda por apenas um subdomínio. Por exemplo, se alguém digitar:

www.meudominio.com

Redirecionar para:

meudominio.com

Ou vice-versa.

Também há a possibilidade de alguém tentar acessar uma página interna:

www.meudominio.com/contato

Então você precisa não só redirecionar o domínio, mas toda a requisição:

meudominio.com/contato

Para isso utilizaremos condicionais combinadas com o rewrite.

Edite o arquivo de configuração do Nginx e dentro da configuração de virtualhost do seu domínio, adicione as seguintes linhas:

if ( $host ~* "^www\." ) {
        rewrite ^(.*)$ $scheme://meudominio.com/${uri} permanent;
}

Onde:
  • host ~* "^www\." :: se o $host (nome de domínio) começar com "www.";
  • rewrite ^(.*)$ :: reescreva toda a requisição ( ^ é início e $ é fim da string completa );
  • scheme :: protocolo utilizado, por exemplo http, https etc;
  • {uri} :: tudo o que vem depois do nome do domínio, como "/contato" por exemplo;
  • permanent :: equivale ao HTTP 301, mover permanentemente.

Se quiser fazer o inverso, que seria redirecionar "meudominio.com" para "www.meudominio.com", a configuração ficaria assim:

if ( $host ~* "^meudominio.com" ) {
        rewrite ^(.*)$ $scheme://www.meudominio.com/${uri} permanent;
}

Reinicie o Nginx e seja feliz!

O VOL faz isso, redireciona "vivaolinux.com.br" para "www.vivaolinux.com.br". Podemos conferir usando o CURL:

curl -I https://vivaolinux.com.br/forum
HTTP/2 301
cache-control: max-age=0, must-revalidate, no-cache, no-store
content-type: text/html
date: Tue, 30 Jun 2020 02:40:53 GMT
display: staticcontent_sol
expires: Mon, 29 Jun 2020 02:40:53 GMT
location: https://www.vivaolinux.com.br/forum
pagespeed: off
response: 301
server: nginx/1.16.0
vary: Accept-Encoding
vary: Origin,Accept-Encoding,X-APP-JSON
x-ezoic-cdn: Miss
x-middleton-display: staticcontent_sol
x-middleton-response: 301
x-sol: pub_site


Até a próxima!

Outras dicas deste autor

Como programar um keylogger em Python [Vídeo]

Belo Horizonte é sede de amplo debate sobre conhecimento livre

Site de depuração e aprendizado de expressões regulares

Checar a conexão com a Internet em Python

Limitando o alcance do SED por números de linha

Leitura recomendada

Configurando sua impressora de rede no KDE

Adicionando repositórios Debian 4 Etch

Logando automaticamente no Slackware

Synaptic no Red Hat 9

Instalando o Cinelerra no Ubuntu 12.04 ou superior

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts