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.887 ]

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

Login automático em servidores FTP

DNS Dinâmico no Linux com ddupdate - DuckDNS

Como editar arquivos remotos usando o Vim

Como remover parêntesis dos nomes de arquivos

SELECT data = hoje/ontem/anteontem no MySQL

Leitura recomendada

GC89 GPRS da Claro no Ubuntu Linux

Alterando ícones no Ubuntu Linux (válido para qualquer versão)

Menu translúcido no KDE

Instalar o CentOS a partir de um chaveiro USB

Dando uma penteada final no Ubuntu

  

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