BlogEngine.net : comment supprimer la date de l'URL de publication

Il y a quelques jours, j'ai inconsciemment pris la décision de supprimer les dates de l'URL de publication dans mon site développé sur la plateforme BlogEngine.net, un CMS open source en Asp.net.

La fonctionnalité disponible sur réglages dans la section Autres réglages, vous permet d'ajouter ou supprimer les dates des URL de publication simplement en cochant ou décochant l'élément Ajouter la date au lien Publier.

Malheureusement pour moi cette opération de suppression a eu un impact négatif et de graves dommages côté SEO à SoulTricks.



Comment supprimer la date de l'URL de la publication

BlogEngine.net : comment supprimer la date de l'URL de publication

Alors que WordPress gère la suppression de la date de l'URL des posts avec différents plugins, BlogEngine ne propose pas de fonction ad hoc qui aide l'utilisateur à résoudre ce problème, et cela crée une certaine gêne pour les moteurs de recherche comme Google, qui interprètent les vos articles en tant qu'articles en double, même si vous avez fourni un plan du site valide et avec de nouvelles URL. A cet égard, jetez un œil à Recherche Google dans la section Apparence dans la recherche > Amélioration HTML > Titre de la balise Meta en double, pour montrer que les postes en double sont précisément ceux avec et sans date. Par exemple quelque chose comme ceci :

Comment taper sur le clavier de votre PC sans regarder
/post/2016/05/14/come-scrivere-sulla-tastiera-del-pc-senza-guardare.aspx
/ post / 2016/05/14 / comment-écrire-sur-le-clavier-de-pc-sans-regarder

Cette situation a entraîné une perte de positionnement de mes articles dans les moteurs de recherche et une baisse évidente des visites quotidiennes. En attendant, j'ai essayé de rechercher sur Internet la solution à ce problème comment supprimer les dates de l'URL de publication dans Asp.net ou C # et comment effectuer une redirection 301 permanente. Mais rien du tout. Donc?


Voici comment j'ai résolu dans BlogEngine.net :

  • Téléchargé la dernière version de Visual Studio dans la version gratuite
  • Téléchargement du fichier BlogEngine.net (source) de la version que vous utilisez.
  • Ouverture de la version BlogEngine.sln dans Source / Blogengine
  • Dans Visual Studio Solution Explorer, ouvrez BlogEngine.Core> Web> UrlRules.cs

Dans ce fichier j'ai ajouté les lignes de code suivantes :


Dans les constantes et champs #region de la 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);

 

Dans la méthode ExtraireTitre, qui reçoit en deuxième paramètre l'url des publications, vous devez écrire les lignes de code suivantes à l'intérieur immédiatement après cette ligne de code

 url = url.ToLowerInvariant().Replace(“—“, “-“);

 

if (url.Contains("/post/") || url.Contains("/POST/")) { if (YearMonthDayRegexs.IsMatch(url)) { var match = YearMonthDayRegexs.Match(url); var année = match.Groups[1].Valeur ; var mois = match.Groups[2].Value; var jour = match.Groups[3].Valeur ; url = url.ToLowerInvariant().Replace("/" + year.ToString(), ""); url = url.ToLowerInvariant().Replace("/" + mois.ToString(), ""); url = url.ToLowerInvariant().Replace("/" + day.ToString(), ""); if (url.Contains("?")) { url = url.Substring(0, url.Length - 1); } context.Response.AppendHeader("emplacement", url); context.Response.StatusCode = 301; } }


Cependant, si vos articles ont une URL se terminant par l'extension .aspx, vous devrez déplacer ces lignes de code juste après cette instruction :

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

 

De cette façon, vos anciens articles contenant la date dans l'URL seront redirigés vers une URL non datée, comme dans l'exemple ci-dessous :


  • da: /post/2013/10/11/come-trasferire-i-contatti-e-altri-dati-da-iphone-ad-android.aspx
  • à: / publier / comment-transférer-des-contacts-et-autres-données-de-iphone-à-android

Lorsque vous avez terminé dans Visual Studio, accédez au menu Compilation et sélectionnez Ricompila BlogEngine.Core. Attendez la fin de l'opération, puis passez à SourceBlogEngineBlogEngine.CorebinRelease pour copier le fichier Blogengine.core.dll et collez-le dans le dossier Boîte à la racine de votre site. Et c'est tout!

Si vous ne souhaitez pas vous impliquer dans le BlogEngine.Core, vous pouvez essayer d'intervenir dans le Web.Config avec ces lignes de code. Attention, c'est à tester puisque je ne l'ai pas essayé.

Cela dit, je dois remercier tout particulièrement deux super blogueuses qui, par leur disponibilité, m'ont aidé à me sortir de cette mauvaise situation, et que j'admire et respecte vraiment :


Luca Congiu: développeur asp.net et blogueur DotNetCode.com et auteur de quelques articles sur SoulTricks.com

Giorgio Borelli: auteur et créateur du blog Informaticando.net - un web autour des technologies de l'information.

ajouter un commentaire de BlogEngine.net : comment supprimer la date de l'URL de publication
Commentaire envoyé avec succès ! Nous l'examinerons dans les prochaines heures.