web-dev-qa-db-ja.com

githubでホストされているサイトの301リダイレクト?

これが私のGithubリポジトリです: https://github.com/n1k0/casperjs

あります gh-pagesブランチ。プロジェクトのドキュメントを保持します。これは基本的にプロジェクトのWebサイトです。 https://github.com/n1k0/casperjs/tree/gh-pages

このブランチは http://n1k0.github.com/casperjs/ にドキュメントサイトをセットアップします—万歳。

その間、私はcasperjs.orgドメインを介してこのWebサイトを利用できるようにするため、CNAMEファイルを ドキュメントで推奨 として配置します。 https://github.com/n1k0/casperjs/blob/gh-pages/CNAME —これらの例では、操作はwww.example.comおよびcharlie.github.comからexample.com

Webサイトは現在 http://casperjs.org/ をポイントしていますが、 http://n1k0.github.com/casperjs/ (古いサイトからの301リダイレクトはありません。 url)を新しいドメイン名に変更します。

そのようなリダイレクトをセットアップする方法はありますか?バグですか?ある場合、どこで問題を開くべきですか?

48
NiKo

このトピックを完全に復活させ、GHがredirect-fromのredirect-toパラメーターをサポートするようになったことを言及 https://github.com/jekyll/jekyll-redirect-from#redirect-to

これを_config.ymlに追加するだけです

gems:
  - jekyll-redirect-from

そして、これをインデックスページの上部に配置します。

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

コンテンツの重複を避けるために、最初に次のようなメタカノニカルを追加できます。

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

次のように、ホスト検出後にJavaScriptを使用してリダイレクトできます。

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

しかし、私は同意します。これはHTTPリダイレクションではありません。

7
GromNaN

なぜ http://www.w3.org/TR/WCAG20-TECHS/H76.html を使用しなかったのですか?

それは与える

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

手動レイアウト方式

https://github.com/jekyll/jekyll-redirect-from を使用したくない場合は、自分で実装するのは簡単です。

a.md

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

_layouts/redirect.htmlに基づく 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

Githubページは.htaccessnginx/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>
4
equivalent8

私のgithubページサイトのドメインを切り替えると、同様の問題が発生しました。 Herokuに rerouter を設定して、新しいドメインへの301リダイレクトを処理します。ドメインからドメインへのリダイレクトを非常に簡単に処理しますが、サイトのレガシードメインとパスの場所を処理するために変更が必要になる場合があります。

ここで手順を詳しく説明しました:

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

1
Joey