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
Lançamento do TupiServer Linux 1.0
Criando aplicativos multiplataforma (Android, iOS, Windows) com Python + Kivy
mimeit - enviando e-mail com anexo via linha de comando
Lendo arquivos Markdown no terminal (*.md)
CSS3 - Forçando quebra de linha em URL longa
Leitura recomendada
Slackpkg plus (instalação e configuração multilib)
Configurando somente o básico do Grub2
Cinnamon - Desativar suspender ao abaixar tela notebook
Intel Graphics Installer no Linux Mint
Problemas com áudio no Linux Educacional 3 [Resolvido]
Comentários
Nenhum comentário foi encontrado.