Entendi, ciamalura.
Uma estratégia que eu gosto é a utilizada por encurtadores de url.
Você armazena o ID e a url de redirecionamento. Por exemplo:
+------+------------------------------+
| ID | URL_ORIGINAL |
+------+------------------------------+
| 123 | https://www.example.com |
+------+------------------------------+
| xpto | https://www.superexample.com |
+------+------------------------------+
Na sua aplicação web, você vai criar uma rota no formato https://www.ciamalura.com/redir/{ID}
e a action executada nesta url será a responsável por buscar o URL_ORIGINAL
a partir do {ID}
e devolver ao navegador do usuário a resposta 302 (redirecionamento temporário), por exemplo, com o redirecionando para a url correta.
Com este formato é possível coletar dados dos usuários como a quantidade de cliques que cada lin recebeu, se o domínio da sua aplicação possuir autenticação será possível saber qual usuário usou qual link, é possível adicionar à URL de redirecionamento parâmetros de campanhas (utm_source, etc.).
No AspNet Core, sua implementação será +/- assim, como este rascunho:
[HttpGet("/redir/{id:required}")]
public IActionResult RedirectTo(string id)
{
if (id == null)
{
return NotFound();
}
var shortUrl = _urlRepository.Get(id);
if (shortUrl == null)
{
return NotFound();
}
return Redirect(shortUrl.OriginalUrl);
}
O que você acha?
Abs.