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:
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.
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.