GitLab Pagesでカスタムドメインを設定していると、 gitlab.ioとカスタムドメインでコンテンツのパスが違ったり、 同じページに対して複数のURLでアクセスできてしまいます。

Webサイトには、カスタムドメインからのみアクセスできるようにしたいので、 gitlab.ioにアクセスしたときは、リダイレクトさせます。 しかし、ドメインレベルのリダイレクトは、GitLab Pagesではサポートされていないらしいです。

ここでは、JavaScriptによるリダイレクトを使って、 カスタムドメインにリダイレクトさせる方法を紹介します。

リダイレクト設定

FQDNが .gitlab.io で終わる場合に https://example.com にリダイレクトさせます。

  1. HTMLの head 部分に以下のスクリプトを挿入する。

  2. example.com の部分は設定しているカスタムドメインに変更する。

<script>
    if (new RegExp('\.gitlab\.io$').test(location.hostname)) {
        location.href = "https://example.com";
    }
</script>

JavaScriptリダイレクト

先述の設定例のように、JavaScriptによるリダイレクトを行うには、 window.location プロパティを設定します。 window.location には、Location オブジェクトや文字列を代入することができます。

location = "https://example.com";
location.href = "https://example.com";

Google検索では

Google検索では、JavaScriptによるリダイレクトは永続的なリダイレクトとして解釈されます。 ただし、JavaScriptによるリダイレクトは、サーバーによるリダイレクトや meta refresh リダイレクトが行えない場合にのみ使用することが推奨されています。