Подтвердить что ты не робот

301 перенаправление для сайта, размещенного в github?

Здесь мой репозиторий Github: https://github.com/n1k0/casperjs

Там есть ветвь gh-pages для размещения проектной документации, которая в основном представляет собой веб-сайт проекта: https://github.com/n1k0/casperjs/tree/gh-pages

Эта ветка настраивает сайт документации на http://n1k0.github.com/casperjs/ - ура.

Между тем, у меня есть домен casperjs.org, чтобы получить доступ к этому веб-сайту, поэтому я поместил файл CNAME в качестве рекомендованный в docs: https://github.com/n1k0/casperjs/blob/gh-pages/CNAME - в их примере предполагается, что операция будет создавать перенаправления с www.example.com и charlie. github.com к example.com...

Пока веб-сайт теперь указывает на http://casperjs.org/, нет 301 перенаправления из http://n1k0.github.com/casperjs/ (старый URL-адрес сайта) к новому доменному имени.

Любая идея, как настроить такое перенаправление, если это возможно? Это ошибка? Если это так, где я должен открыть проблему?

4b9b3361

Ответ 1

Возвращая эту тему из мертвых, чтобы упомянуть, что GH теперь поддерживает перенаправление - от параметра перенаправления к параметру https://github.com/jekyll/jekyll-redirect-from#redirect-to

Просто добавьте это в свой _config.yml

gems:
  - jekyll-redirect-from

И это вверху вашей индексной страницы.

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

Ответ 2

Чтобы избежать дублирования контента, в первый раз вы можете добавить мета-каноническое значение:

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

Ответ 3

Вы можете перенаправить с помощью Javascript после обнаружения хоста, например:

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

Но я согласен, это не перенаправление HTTP.

Ответ 4

Метод ручной компоновки

Если вам не нравится использовать https://github.com/jekyll/jekyll-redirect-from, легко реализовать его самостоятельно:

a.md:

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

_layouts/redirect.html на основе Redirect с 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>

Теперь:

firefox localhost:4000/a

перенаправит вас на example.com.

Как и в этом примере, плагин redirect-from не генерирует 301, а только meta + JavaScript перенаправляет.

Мы можем проверить, что происходит:

curl localhost:4000/a

Протестировано на страницах GitHub v64, живая демонстрация по адресу: https://github.com/cirosantilli/cirosantilli.github.io/tree/d783cc70a2e5c4d4dfdb1a36d518d5125071e236/r

Ответ 6

У меня была аналогичная проблема при переключении домена для моего сайта github pages. Я настроил rerouter на Heroku, чтобы обрабатывать 301 переадресацию в новый домен. Он очень просто обрабатывает переадресацию домена к домену, но вам, возможно, придется изменить его, чтобы обрабатывать свой прежний домен + путь к сайту.

Я подробно описал шаги здесь:

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

Ответ 7

Страницы Github не поддерживают ничего вроде .htaccess или nginx/conf

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

так проще всего:

Переадресация HTML:

index.html

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

  <body>
    <p><a href="#" onclick="location.href='http://www.mywebsite.com/'; return false;">Redirect</a></p>
  </body>
</html>