Francisco Chaves

Francisco Chaves

Software Developer. Entusiasta Linux.

© 2020

Modo escuro

Redirecione domínio web com Node.js

Logo

Olá pessoal, recentemente alterei o nome do domínio do blog, e então passei por uma situação que precisava redirecionar as URLs antigas para as novas. Então para solucionar este problema, como ainda tenho o domínio antigo https://blog.franciscochaves.com, criei uma aplicação em Node.js que recebe a requisição do visitante e após redireciona para nova URL e adiciona status code 301.

A hospedagem da aplicação Node.js foi realizada na Umbler com um custo baixo apenas R$ 8,00 por mês, em uma instância de 2 Core; 512 MB de RAM; 1 GB de disco; e Tráfego de 256 GB. Inscreva-se agora na plataforma Umbler e comece a utilizar os serviços.

Antes de iniciar a codificar, irei apresentar o problema a ser resolvido, observe a imagem abaixo:

Problema a ser resolvido

Crie uma pasta com o nome redirect-domain:

mkdir redirect-domain

Entre na pasta:

cd redirect-domain

Crie o arquivo package.json, para descrever o projeto e suas dependências:

npm init -y

Instale o Framework web Express como dependência:

npm install express

Crie o arquivo server.js e adicione o conteúdo abaixo:

const express = require('express');
const server = express();

const port = process.env.PORT || 3000;
const newHost = process.env.NEW_HOST || 'https://franciscochaves.com.br';

/* 
  https://blog.franciscochaves.com/2018/01/instale-o-java-no-xubuntu
  ↪
  https://franciscochaves.com.br/blog/instale-o-java-no-xubuntu
*/

server.get('*', (req, res) => {
  const { originalUrl } = req;
  if (originalUrl === '/') {
    res.set('location', `${newHost}`);
  } else {
    const newUrl = originalUrl
      .slice(9, originalUrl.length)
      .replace('.html', '');
    res.set('location', `${newHost}/blog/${newUrl}`);
  }
  res.status(301).send();
});

server.listen(port, () => {
  console.log('Running server');
});

Para executar localmente utilize o comando a seguir:

node server.js

Para utilizar https na Umbler é fácil, com apenas alguns cliques, acesse Add-ons e selecione Let’s Encrypt.

Adicione Let's Encrypt

O código fonte do projeto está no GITHUB: https://github.com/franciscojsc/redirect-domain.

Valeu pessoal 😎✌.

Referências

How to make a redirect (301) in Node.js / Express?. STACKOVERFLOW. Disponível em: https://stackoverflow.com/a/43054899. Acesso em: 06. out. 2020.

HTTP location. WIKIPEDIA Disponível em: https://en.wikipedia.org/wiki/HTTP_location. Acesso em: 07. out. 2020.

Location. MDN. Disponível em: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Headers/Localiza%C3%A7%C3%A3o. Acesso em: 07. out. 2020.

×

Inscreva-se para novas atualizações