Quelle est la meilleure approche pour la redirection des anciennes pages dans Jekyll et GitHub Pages?
J'ai un blog sur github pages - jekyll
Quelle est la meilleure façon de résoudre l'url de la stratégie de migration?
J'ai trouvé la meilleure pratique en commun est de créer htaccess comme
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
Mais il ne semble pas marcher avec Github. Une autre solution que j'ai trouvé est de créer la tâche rake, ce qui va générer des pages de redirection. Mais comme c'est un fichier html, il n'est pas en mesure d'envoyer 301
tête, pour SE les robots ne le reconnaît pas comme une redirection.
- Cela a fonctionné pour moi: help.github.com/articles/redirects-on-github-pages
Vous devez vous connecter pour publier un commentaire.
La meilleure solution est d'utiliser les deux
<meta http-equiv="refresh"
et<link href=
Il fonctionne très bien, Google Bot réindexée l'ensemble de mon site web, sous de nouveaux liens sans perdre des positions. Les utilisateurs sont redirigés vers les nouveaux messages tout de suite.
À l'aide de
<meta http-equiv="refresh"
pour rediriger les visiteurs de la nouvelle poste.Comme pour Google Bot, il traite
<link href=
comme redirection 301), l'effet est que vous obtenez vos pages réindexée et qu'est ce que vous voulez.J'ai décrit tout le processus de la façon dont j'ai déménagé mon blog WordPress pour Octopress ici.
http://konradpodgorski.com/blog/2013/10/21/how-i-migrated-my-blog-from-wordpress-to-octopress/#redirect-301-on-github-pages
canonical
impliquent que Google va indexer les pages à partir de zéro, ou faut-il transférer le classement de score à la nouvelle page? Pouvez-vous préciser comment cette approche affecte le classement de page?<meta http-equiv="refresh"
cause d'une infinie redirection en boucle? C'est ce que je suis, peut-être que je fais quelque chose de mal?<head>
bloc.Avez-vous essayé le Jekyll Générateur d'Alias plugin?
Vous mettre les alias d'url dans le fichier YAML avant la matière d'un post:
Lorsqu'un utilisateur visite un des alias d'url, ils sont redirigés vers l'url principale via une balise meta refresh:
Voir aussi ce blog sur le sujet.
safe: false
dans_config.yml
2) j'allais avoir à la création de plus de 400 alias entrées. Au lieu de l'artisanat, je automatisé avec un script Python: gist.github.com/smholloway/8726873Cette solution vous permet d'utiliser de vraies redirections HTTP via .htaccess — cependant, rien n'impliquant .htaccess va travailler sur GitHub pages, parce qu'ils n'utilisez pas Apache.
De Mai 2014 GitHub Pages prend en charge les redirections, mais selon la jekyll-redirection à partir de Gem documentation ils sont toujours basés sur HTTP-ACTUALISATION (à l'aide de
<meta>
tags), ce qui nécessite un plein chargement de la page avant la redirection peut se produire.Je n'aime pas le
<meta>
approche alors j'ai préparé une solution pour ceux qui cherchent à apporter une réelle HTTP redirections 301 dans une .fichier htaccess à l'aide d'Apache, qui sert une pré-généré Jekyll site:Tout d'abord, ajoutez
.htaccess
à lainclude
propriété dans_config.yml
Ensuite, créer une .fichier htaccess et assurez-vous d'inclure YAML avant la matière. Ces tirets sont importants parce que maintenant Jekyll va analyser le fichier avec le Liquide, Jekyll création de modèles de langue:
Assurez-vous que vos messages qui nécessitent des redirections ont deux propriétés comme suit:
Maintenant dans .htaccess, il suffit d'ajouter une boucle:
Cela va générer dynamiquement .htaccess à chaque fois que vous construire le site, et le
include
dans votre fichier de config assure que .htaccess en_site
répertoire.À partir de là, c'est à vous de servir
_site
à l'aide d'Apache. Normalement, je clone le plein Jekyll repo dans une situation de non-répertoire webroot, puis mon vhost est un lien symbolique vers le_site
dossier:Tada! Maintenant, Apache peut servir la _site dossier à partir de votre racine virtuelle, complet avec .htaccess-alimenté des redirections utiliser n'importe quel code HTTP de la réponse que vous désirez!
Vous pourriez même obtenir des super-chic et l'utilisation d'un
redirect
de la propriété à l'intérieur de chaque post avant de matière pour désigner le code de redirection à utiliser dans votre .htaccess boucle..htaccess
fichier. Par exemple, vous pouvez convertir le fichier YAML, de sorte queoriginal
est un tableau au lieu d'une chaîne. Ensuite, vous avez besoin d'une boucle imbriquée, de sorte que chaqueoriginal
entrée génère une redirection verspermalink
. Prenez ce code comme un point de départ et d'expérimenter par vous-même!redirection de plugin
https://github.com/jekyll/jekyll-redirect-from#redirect-to
Il est pris en charge par GitHub et il est facile:
_config.yml
un.md
comme l'explique: https://help.github.com/articles/redirects-on-github-pages/
Maintenant:
va vous rediriger vers
example.com
.Le plugin prend le relais lorsque la
redirect_to
est définie par la page.Testé sur GitHub pages v64.
Note: cette version dispose d'une grave récemment correction d'un bug qui, à tort, réutilise la mise en page par défaut pour la redirection: https://github.com/jekyll/jekyll-redirect-from/pull/106
Mise en page de manuel de la méthode
Si vous n'avez pas envie d'utiliser https://github.com/jekyll/jekyll-redirect-from il est facile à mettre en œuvre vous-même:
un.md
_layouts/redirect.html
basé sur Redirection à partir d'une page HTML :Comme dans cet exemple, le
redirect-from
plugin ne permet pas de générer des redirections 301, seulementmeta
+ JavaScript redirection.Nous pouvons vérifier ce qui se passe avec:
La meilleure option est d'éviter les changements de l'url tout en définissant l'permalien format _config.yml pour correspondre à votre ancien blog.
Au-delà, la solution la plus complète est la génération de pages de redirection, mais n'est pas nécessairement en vaut la chandelle. J'ai fini par tout simplement faire ma page 404 un peu plus convivial, avec javascript pour deviner la bonne nouvelle url. Il ne fait rien pour la recherche, mais, concrètement, les utilisateurs peuvent accéder à la page qu'il cherchait et il n'y a pas d'héritage des trucs à soutenir dans le reste du code.
http://tqcblog.com/2012/11/14/custom-404-page-for-a-github-pages-jekyll-blog/
Depuis github n'autorise pas les redirections 301 (ce qui n'est pas surprenant), vous aurez à prendre une décision entre le déplacement de votre nouvelle structure de l'URL (et en prenant un moteur de recherche, de frapper) ou de quitter l'Url de la façon dont ils sont. Je vous suggère d'aller de l'avant et de faire le passage. Laissez le moteur de recherche, de copeaux de tomber où ils peuvent. Si quelqu'un frappe un de vos anciens liens via le moteur de recherche, ils seront redirigés vers le nouvel emplacement. Au fil du temps, les moteurs de recherche ramasser vos modifications.
Quelque chose que vous pouvez faire pour améliorer les choses est de créer un Sitemap où vous n'liste de vos nouvelles pages et de ne pas les anciens. Cela devrait accélérer le remplacement des anciennes Url avec les nouveaux. En outre, si tous vos anciennes Url sont dans votre "/programovani' répertoire, vous pouvez également utiliser un robots.txt fichier dire analyses futures ils doivent ignorer ce répertoire. Par exemple:
Il va prendre un peu de temps pour les moteurs de recherche pour rattraper avec les changements. Ce n'est pas vraiment un gros problème. Aussi longtemps que les anciennes Url existent encore et rediriger les gens vers les pages actives, vous serez amende.
Comme d'autres l'ont mentionné, la meilleure solution est de les préserver de travail des Url ou de dupliquer les pages et spécifier un canonique URL.
Depuis github pages ne supporte pas vrai redirections, j'ai choisi de définir rerouter sur Heroku pour revenir 301 (permanente) redirige sur mon site de l'ancien domaine vers le nouveau. J'ai décrit les détails ici:
http://joey.aghion.com/simple-301-redirects/
example.com/index.html
àexample.com
ouexample.com/some-post/index.html
àexample.com/some-post/
.Jekyll a connu quelques mises à jour majeures au cours des derniers mois, peut-être que ce n'était pas possible lorsque cette question a été posté...
Jekyll prend en charge un
permalink
attribut dans la YAML préliminaires section de vos messages de blog. Vous pouvez spécifier l'URL que vous souhaitez que votre post pour avoir et Jekyll va l'utiliser (à la place du nom de fichier) lors de la génération de votre site.