2012-02-14 9 views
34

Вот репозиторий Github мой: https://github.com/n1k0/casperjs301 перенаправление для сайта, размещенного в github?

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

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

В то же время, у меня сук домена casperjs.org, чтобы получить этот веб-сайт через него, так что я положил CNAME файл в recommended in the 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

+1. Я также предпочел бы, чтобы моя страница была доступна только через доменное имя. –

+1

Возможный дубликат [Постоянный переадресация с gith-страниц Github] (http://stackoverflow.com/questions/5302663/permanent-redirect-from-github-gh-pages) –

+0

ах, клянусь, я тщательно искал спрашиваю, извините: $ Edit: совсем не тот же вопрос на самом деле, и некоторые проницательные комментарии были опубликованы ниже methinks :) – NiKo

ответ

25

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

Просто добавьте это к вашему _config.yml

gems: 
    - jekyll-redirect-from 

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

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

Хорошее решение, но стоит отметить, что этот камень создает html-страницу с перенаправлением мета-обновления, а не перенаправление на уровне http. –

+0

Существует недавно установленная серьезная ошибка макета по умолчанию: https://github.com/jekyll/jekyll-redirect-from/pull/106, ожидающая ее восхождения ;-) –

6

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

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

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

+1

Проблема в том, что она выиграла ' t решить проблему с повторяющимся содержимым google, с которой я сталкиваюсь прямо сейчас:/ – NiKo

+8

А пока вы можете добавить rel = "canonical" на свою страницу, поэтому Google не будет объявлять эти страницы как «дубликаты»: http : //support.google.com/webmasters/bin/answer.py? hl = ru & answer = 139394 – cyberdelia

+0

Конечно, спасибо! – NiKo

9

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

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

Ах да, я забыл об этом, спасибо за подсказку :) Но это не решает основной проблемы, которая заключается в отсутствии постоянной переадресации, к сожалению :/ – NiKo

1

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

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

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

3

Руководство раскладка метод

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

a.md:

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

_layouts/redirect.html на основе Redirect from an HTML page:

<!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.

0

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="http://www.mywebsite.com/">Redirect</a></p> 
    </body> 
</html>