Ich habe einen Blog auf Github-Seiten - Jekyll
Was ist der beste Weg, um die Migration der URL-Strategie zu lösen?
Ich fand, dass die beste Vorgehensweise darin besteht, einen solchen Zugriff zu erstellen
Redirect 301 /programovani/2010/04/git-co-to-je-a-co-s-tim/ /2010/04/05/git-co-to-je-a-co-s-tim.html
Aber es scheint nicht mit Github zu funktionieren. Eine andere Lösung, die ich gefunden habe, ist das Erstellen einer Rechenaufgabe, die Umleitungsseiten generiert. Da es sich jedoch um ein HTML handelt, kann es keinen 301
Kopf senden , sodass SE-Crawler ihn nicht als Umleitung erkennen.
redirect
github
jekyll
http-status-code-301
github-pages
Mailo Světel
quelle
quelle
Antworten:
Die beste Lösung ist, beide
<meta http-equiv="refresh"
und zu verwenden<link rel="canonical" href=
Es funktioniert sehr gut, Google Bot hat meine gesamte Website unter neuen Links neu indiziert, ohne Positionen zu verlieren. Außerdem werden die Benutzer sofort zu den neuen Posts weitergeleitet.
Mit
<meta http-equiv="refresh"
wird jeder Besucher auf den neuen Beitrag umgeleitet. Google Bot wird<link rel="canonical" href=
als 301-Weiterleitung behandelt . Dies hat zur Folge, dass Sie Ihre Seiten neu indizieren und genau das möchten.Ich habe hier den gesamten Prozess beschrieben, wie ich mein Blog von Wordpress auf Octopress verschoben habe. http://konradpodgorski.com/blog/2013/10/21/how-i-migrated-my-blog-from-wordpress-to-octopress/#redirect-301-on-github-pages
quelle
canonical
, dass Google die Seiten von Grund auf neu indiziert, oder überträgt es den Ranking-Score auf die neue Seite? Können Sie klarstellen, wie sich dieser Ansatz auf das Seitenranking auswirkt?<meta http-equiv="refresh"
Ursache nicht eine Endlosumleitungsschleife sein? Das bekomme ich, vielleicht mache ich etwas falsch?<head>
Block enthalten sein.Haben Sie das Jekyll Alias Generator Plugin ausprobiert ?
Sie haben die Alias-URLs in die YAML-Titelseite eines Posts eingefügt:
Wenn ein Benutzer eine der Alias-URLs besucht, wird er über eine Meta-Tag-Aktualisierung zur Haupt-URL umgeleitet:
Siehe auch diesen Blog-Beitrag zu diesem Thema.
quelle
safe: false
in_config.yml
2) Ich würde 400 Alias - Einträge erstellen muß über. Anstatt diese von Hand zu erstellenRedirect-from-Plugin
https://github.com/jekyll/jekyll-redirect-from#redirect-to
Es wird von GitHub unterstützt und macht es einfach:
_config.yml
a.md
wie unter https://help.github.com/articles/redirects-on-github-pages/ erklärt
Jetzt:
leitet Sie weiter zu
example.com
.Das Plugin übernimmt immer dann, wenn das
redirect_to
von der Seite definiert wird.Getestet auf GitHub-Seiten v64.
Hinweis : Diese Version hat einen schwerwiegenden kürzlich behobenen Fehler, der das Standardlayout für die Umleitung fälschlicherweise wiederverwendet: https://github.com/jekyll/jekyll-redirect-from/pull/106
Manuelle Layoutmethode
Wenn Sie keine Lust haben zu verwenden https://github.com/jekyll/jekyll-redirect-from zu verwenden, können Sie es einfach selbst implementieren:
a.md
_layouts/redirect.html
basierend auf Weiterleiten von einer HTML-Seite :Wie in diesem Beispiel ist die
redirect-from
generiert Plugin keine 301s, sondern nurmeta
+ JavaScript-Weiterleitungen.Wir können überprüfen, was los ist mit:
quelle
Mit dieser Lösung können Sie echte HTTP-Weiterleitungen über .htaccess verwenden. Auf GitHub-Seiten funktioniert jedoch nichts mit .htaccess, da sie keinen Apache verwenden.
Ab Mai 2014 unterstützt GitHub Pages Weiterleitungen , aber laut der Dokumentation zu jekyll-redirect-from Gem basieren sie immer noch auf HTTP-REFRESH (unter Verwendung von
<meta>
Tags), für das eine vollständige Seitenladung erforderlich ist, bevor eine Umleitung erfolgen kann.Der
<meta>
Ansatz gefällt mir nicht, daher habe ich eine Lösung für alle entwickelt, die mithilfe von Apache, das eine vorgenerierte Jekyll-Site bereitstellt, echte HTTP 301-Weiterleitungen in einer .htaccess-Datei bereitstellen möchten:Fügen Sie
.htaccess
zunächst derinclude
Eigenschaft in hinzu_config.yml
Erstellen Sie als Nächstes eine .htaccess-Datei und stellen Sie sicher, dass YAML-Frontmaterie enthalten ist . Diese Striche sind wichtig, da Jekyll jetzt die Datei mit Liquid, Jekylls Vorlagensprache, analysiert:
Stellen Sie sicher, dass Ihre Posts, für die Weiterleitungen erforderlich sind, zwei Eigenschaften haben:
Fügen Sie jetzt in .htaccess einfach eine Schleife hinzu:
Dadurch wird jedes Mal, wenn Sie die Site erstellen, dynamisch .htaccess generiert, und
include
in Ihrer Konfigurationsdatei wird sichergestellt, dass .htaccess in das_site
Verzeichnis aufgenommen wird.Von dort aus liegt es an Ihnen,
_site
mit Apache zu dienen . Normalerweise klone ich das vollständige Jekyll-Repo in ein Nicht-Webroot-Verzeichnis, dann ist mein vhost ein Symlink zum_site
Ordner:Tada! Jetzt kann Apache den Ordner _site von Ihrem virtuellen Stammverzeichnis aus bereitstellen, einschließlich Weiterleitungen mit .htaccess-Unterstützung, die den gewünschten HTTP-Antwortcode verwenden!
Sie könnten sogar super schick werden und eine
redirect
Eigenschaft in der Titelseite jedes Posts verwenden, um zu bestimmen, welcher Umleitungscode in Ihrer .htaccess-Schleife verwendet werden soll.quelle
.htaccess
Datei generieren . Sie können beispielsweise die YAML so konvertieren, dass sieoriginal
ein Array anstelle einer Zeichenfolge ist. Dann benötigen Sie eine verschachtelte Schleife, damit jederoriginal
Eintrag eine Umleitung zu generiertpermalink
. Nehmen Sie diesen Code als Ausgangspunkt und experimentieren Sie selbst!Die beste Option ist, URL-Änderungen insgesamt zu vermeiden, indem Sie das Permalink-Format in _config.yml so einstellen, dass es mit Ihrem alten Blog übereinstimmt.
Darüber hinaus besteht die vollständigste Lösung darin, Weiterleitungsseiten zu generieren, die sich jedoch nicht unbedingt lohnen. Am Ende habe ich meine 404-Seite einfach ein bisschen freundlicher gemacht, mit Javascript, um die richtige neue URL zu erraten. Es wird nichts für die Suche getan, aber tatsächliche Benutzer können zu der Seite gelangen, nach der sie gesucht haben, und es gibt keine älteren Dinge, die im Rest des Codes unterstützt werden könnten.
http://tqcblog.com/2012/11/14/custom-404-page-for-a-github-pages-jekyll-blog/
quelle
Da Github keine 301-Weiterleitungen zulässt (was nicht überraschend ist), müssen Sie eine Entscheidung treffen, ob Sie zu Ihrer neuen URL-Struktur wechseln (und einen Suchmaschinentreffer ausführen) oder die URLs so lassen, wie sie sind. Ich schlage vor, Sie machen den Schritt. Lassen Sie die Suchmaschinen-Chips fallen, wo sie können. Wenn jemand über die Suchmaschine auf einen Ihrer alten Links trifft, wird er an den neuen Ort weitergeleitet. Im Laufe der Zeit werden die Suchmaschinen Ihre Änderungen übernehmen.
Sie können eine Sitemap erstellen, in der Sie nur Ihre neuen und nicht die alten Seiten auflisten. Dies sollte das Ersetzen alter URLs durch neue beschleunigen. Wenn sich alle Ihre alten URLs in Ihrem Verzeichnis '/ programovani' befinden, können Sie auch eine robots.txt-Datei verwenden , um zukünftigen Crawls mitzuteilen, dass sie dieses Verzeichnis ignorieren sollen. Zum Beispiel:
Es wird eine Weile dauern, bis die Suchmaschinen mit den Änderungen Schritt halten. Das ist keine große Sache. Solange die alten URLs noch vorhanden sind und tatsächliche Personen auf die aktiven Seiten umleiten, ist alles in Ordnung.
quelle
Wie bereits erwähnt, besteht die beste Lösung darin, funktionierende URLs beizubehalten oder die Seiten zu duplizieren und eine kanonische URL anzugeben .
Da Github-Seiten keine echten Weiterleitungen unterstützen, habe ich mich entschieden, eine Umleitung auf Heroku einzurichten , um 301 (permanente) Weiterleitungen von der alten Domain meiner Site zur neuen zurückzugeben. Ich habe die Details hier beschrieben:
http://joey.aghion.com/simple-301-redirects/
quelle
example.com/index.html
aufexample.com
oderexample.com/some-post/index.html
zuexample.com/some-post/
.Jekyll hat in den letzten Monaten einige wichtige Updates durchlaufen. Vielleicht war dies nicht möglich, als diese Frage ursprünglich gestellt wurde ...
Jekyll unterstützt ein
permalink
Attribut im YAML-Front-Matter-Bereich Ihrer Blog-Beiträge. Sie können die URL angeben, die Ihr Beitrag haben soll, und Jekyll verwendet diese (anstelle des Dateinamens) beim Generieren Ihrer Website.quelle