BlogEngine.net: como remover a data do URL da postagem

Alguns dias atrás, eu inconscientemente tomei a decisão de remover datas do URL da postagem no meu site desenvolvido na plataforma BlogEngine.net, um CMS de código aberto em Asp.net.

A funcionalidade disponível em configurações na secção Outros ajustes, permite que você adicione ou remover datas de URLs de postagem simplesmente marcando ou desmarcando o item Adicione a data ao link Postagem.

Infelizmente para mim, esta operação de remoção teve um impacto negativo e sérios danos colaterais de SEO para SoulTricks.



Como remover a data do URL da postagem

BlogEngine.net: como remover a data do URL da postagem

Enquanto o WordPress gerencia a exclusão da data da URL das postagens com diferentes plug-ins, o BlogEngine não fornece uma função ad hoc que ajuda o usuário a resolver esse problema, e isso cria um certo incômodo para os motores de busca como o Google, que interpretam o seus artigos como artigos duplicados, mesmo se você tiver fornecido um mapa do site válido e com novos URLs. A este respeito, dê uma olhada em Pesquisar no Google na secção Aparência em Pesquisa> Aprimoramento de HTML> Título de metatag duplicado, para mostrar que as postagens duplicadas são exatamente aquelas com data e sem data. Por exemplo, algo assim:

Como digitar no teclado do seu PC sem olhar
/post/2016/05/14/come-scrivere-sulla-tastiera-del-pc-senza-guardare.aspx
/ post / 2016/05/14 / como escrever no teclado do pc sem olhar

Esta situação tem causado uma perda de posicionamento dos meus artigos nos motores de busca e uma queda evidente nas visitas diárias. Nesse ínterim, tentei pesquisar na Internet a solução para este problema como remover datas do URL da postagem em Asp.net ou C # e como fazer um redirecionamento 301 permanente. Mas absolutamente nada. Portanto?


Aqui está como resolvi no BlogEngine.net:

  • Baixou a versão mais recente do Visual Studio na versão gratuita
  • Baixou o arquivo BlogEngine.net (fonte) da versão que você está usando.
  • Abriu a versão BlogEngine.sln em Source / Blogengine
  • No Visual Studio Solution Explorer, abra BlogEngine.Core> Web> UrlRules.cs

Neste arquivo, adicionei as seguintes linhas de código:


Nas constantes #region e campos da classe UrlRules

private static readonly Regex YearMonthDayRegexs = new Regex ("/ ([0-9] [0-9] [0-9] [0-9]) / ([0-1] [0-9]) / ([0 -3] [0-9]) / ", RegexOptions.IgnoreCase | RegexOptions.Compiled);

 

No método ExtractTitle, que recebe como segundo parâmetro a url das postagens, você deve escrever as seguintes linhas de código imediatamente após esta linha de código

 url = url.ToLowerInvariant (). Substituir (“-“, “-“);

 

if (url.Contains ("/ post /") || url.Contains ("/ POST /")) {if (YearMonthDayRegexs.IsMatch (url)) {var match = YearMonthDayRegexs.Match (url); var year = match.Groups [1] .Value; var mês = correspondência.Grupos [2] .Valor; var day = match.Groups [3] .Value; url = url.ToLowerInvariant (). Replace ("/" + year.ToString (), ""); url = url.ToLowerInvariant (). Replace ("/" + month.ToString (), ""); url = url.ToLowerInvariant (). Replace ("/" + day.ToString (), ""); if (url.Contains ("?")) {url = url.Substring (0, url.Length - 1); } context.Response.AppendHeader ("local", url); context.Response.StatusCode = 301; }}


No entanto, se suas postagens tiverem um URL terminando com a extensão .aspx, você precisará mover estas linhas de código logo após esta declaração:

if (url.Contains (BlogConfig.FileExtension) && url.EndsWith ("/")) {url = url.Substring (0, url.Length - 1); context.Response.AppendHeader ("local", url); context.Response.StatusCode = 301; }


 


Dessa forma, seus artigos antigos contendo a data no URL serão redirecionados para um URL sem data, assim como no exemplo abaixo:

  • da: /post/2013/10/11/come-trasferire-i-contatti-e-altri-dati-da-iphone-ad-android.aspx
  • para: / post / how-to-transfer-contacts-and-other-data-from-iphone-to-android

Quando terminar no Visual Studio, vá para o menu Compilação e selecione Ricompila BlogEngine.Core. Aguarde a conclusão da operação e vá para SourceBlogEngineBlogEngine.CorebinRelease para copiar o arquivo Blogengine.core.dll e cole na pasta Caixa na raiz do seu site. E é isso!

Se você não deseja se envolver com o BlogEngine.Core, pode tentar intervir no Web.Config com essas linhas de código. Atenção deve ser testada, pois eu não tentei.

Posto isto, tenho que deixar um agradecimento especial a dois grandes bloggers que, com a sua disponibilidade, me ajudaram a sair desta má situação, e que realmente admiro e respeito:


Luca Congiu: desenvolvedor asp.net e blogueiro DotNetCode.com e autor de alguns artigos em SoulTricks.com

Giorgio Borelli: autor e criador do blog Informaticando.net - uma web em torno da tecnologia da informação.

Adicione um comentário do BlogEngine.net: como remover a data do URL da postagem
Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.