web-dev-qa-db-fra.com

Redirection 301 pour le site hébergé sur github?

Voici un dépôt Github à moi: https://github.com/n1k0/casperjs

Il y a un gh-pages branche pour tenir la documentation du projet, qui est essentiellement le site Web du projet: https://github.com/n1k0/casperjs/tree/gh-pages

Cette branche configure le site de documentation à http://n1k0.github.com/casperjs/ - hourra.

En attendant, j'ai acheté le casperjs.org domaine pour que ce site Web soit disponible via celui-ci, j'ai donc mis un fichier CNAME en tant que recommandé dans la documentation : https://github.com/n1k0/casperjs/blob/gh-pages/CNAME - dans leur exemple, l'opération est censée créer des redirections depuis www.example.com et charlie.github.com vers example.com

Alors que le site Web pointe désormais sur http://casperjs.org/ , il n'y a pas de redirection 301 de http://n1k0.github.com/casperjs/ (l'ancien site url) au nouveau nom de domaine.

Une idée de comment configurer une telle redirection, si c'est même possible? Est-ce un bug? Si c'est le cas, où dois-je ouvrir un problème?

48
NiKo

Ramenant ce sujet d'entre les morts pour mentionner que GH prend désormais en charge le paramètre de redirection vers de https://github.com/jekyll/jekyll-redirect-from#redirect-to

Ajoutez simplement ceci à votre _config.yml

gems:
  - jekyll-redirect-from

Et cela en haut de votre page d'index.

---
redirect_to: "http://example.com"
---
29
Perry

Pour éviter le contenu en double, dans un premier temps, vous pouvez ajouter un méta canonique comme celui-ci:

<link rel="canonical" href="http://casperjs.org">
12
piouPiouM

Vous pouvez rediriger en utilisant Javascript après la détection d'hôte, comme ceci:

if (window.location.href.indexOf('http://niko.github.com') === 0) {
    window.location.href = 'http://casperjs.org{{ page.url }}';
}

Mais je suis d'accord, ce n'est pas une redirection HTTP.

7
GromNaN

Pourquoi n'avez-vous pas utilisé http://www.w3.org/TR/WCAG20-TECHS/H76.html ?

Cela donnerait

<meta http-equiv="refresh" content="0;URL='http://casperjs.org/'" />
4
vinyll

Méthode de mise en page manuelle

Si vous n'avez pas envie d'utiliser https://github.com/jekyll/jekyll-redirect-from il est facile de l'implémenter vous-même:

a.md:

---
layout: 'redirect'
permalink: /a
redir_to: 'http://example.com'
sitemap: false
---

_layouts/redirect.html basé sur Rediriger depuis une page HTML :

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Redirecting...</title>
  {% comment %}
    Don't use 'redirect_to' to avoid conflict
    with the page redirection plugin: if that is defined
    it takes over.
  {% endcomment %}
  <link rel="canonical" href="{{ page.redir_to }}"/>
  <meta http-equiv="refresh" content="0;url={{ page.redir_to }}" />
</head>
<body>
  <h1>Redirecting...</h1>
  <a href="{{ page.redir_to }}">Click here if you are not redirected.<a>
  <script>location='{{ page.redir_to }}'</script>
</body>
</html>

Maintenant:

firefox localhost:4000/a

vous redirigera vers example.com.

Comme cet exemple, le redirect-from le plugin ne génère pas 301s, seulement meta + redirections JavaScript.

Nous pouvons vérifier ce qui se passe avec:

curl localhost:4000/a

Testé sur les pages GitHub v64, démo en direct sur: https://github.com/cirosantilli/cirosantilli.github.io/tree/d783cc70a2e5c4d4dfdb1a36d518d5125071e236/r

Les pages Github ne prennent rien en charge comme .htaccess ou nginx/conf

https://help.github.com/articles/redirects-on-github-pages/

le moyen le plus simple est:

Redirection HTML:

index.html

<html>
  <head>
    <meta http-equiv="refresh" content="0; url=http://www.mywebsite.com/" />
  </head>

  <body>
    <p><a href="http://www.mywebsite.com/">Redirect</a></p>
  </body>
</html>
4
equivalent8

J'ai eu un problème similaire lors du changement de domaine pour mon site de pages github. J'ai configuré rerouter sur Heroku pour gérer les redirections 301 vers le nouveau domaine. Il gère les redirections de domaine à domaine très simplement, mais vous devrez peut-être le modifier pour gérer l'ancien domaine + l'emplacement du chemin de votre site.

J'ai décrit les étapes en détail ici:

http://joey.aghion.com/simple-301-redirects/

1
Joey