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-адрес сайта) к новому доменному имени.
Любая идея, как настроить такое перенаправление, если это возможно? Это ошибка? Если это так, где я должен открыть проблему?
Ответы
Ответ 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
Ответ 5
Почему вы не использовали http://www.w3.org/TR/WCAG20-TECHS/H76.html?
Это даст
<meta http-equiv="refresh" content="0;URL='http://casperjs.org/'" />
Ответ 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>