LoginSignup
0
0

More than 3 years have passed since last update.

【Laravel】herokuで独自ドメイン設定したので、~.herokuapp.comでアクセスさせたくない

Last updated at Posted at 2020-08-26

はじめに

herokuにWebアプリをデプロイした場合、通常は「herokuapp.com」のようなherokuが管理しているドメインのサブドメイン(hoge.herokuapp.comなど)にアクセスすることでデプロイ先にアクセスできるのですが、各自で取得した独自ドメインも設定できるようになっています。

Herokuアプリに独自ドメインを設定&SSL化する. Herokuアプリケーションに独自ドメインを追加します。さらにSSLを実装して、… | by Koji Mochizuki | Medium

独自ドメインでのアクセスが可能になれば、元々の[herokuアプリ名].herokuapp.comでのアクセスはあまりさせないようにしたいし、SEO的にもあまりよろしくないようなので、今回は[herokuアプリ名].herokuapp.comでのアクセス時にリダイレクト処理を行うようにしたいと思います。

調べてみるとrailsでの記事はいくつかあったのですが、laravelの記事は見つけられなかったため、自前で実装してみました。

※railsでの例
[SEO対策] Railsでherokuapp.comを正しいFQDNへリダイレクトさせる - Qiita
【Rails】hoge.herokuapp.comへのアクセスをリダイレクトさせる - Qiita

コード

今回はmiddlewareを利用して、[herokuアプリ名].herokuapp.comでのアクセス時にリダイレクト処理を行うようにします。

/app/Http/Kernel.php
protected $middleware = [
    ...
    \App\Http\Middleware\HerokuDomain::class,
];
/app/Http/Kernel.php
<?php
namespace App\Http\Middleware;

use Closure;

class HerokuDomain {

    public function handle($request, Closure $next)
    {
        if (substr($request->header('host'), -13) === 'herokuapp.com') {
            // ドメイン末尾がherokuapp.comのアクセスの場合、.envで指定したAPP_URLに遷移させる
            return redirect()->away(config('app.url') . $_SERVER['REQUEST_URI']);
        }

        return $next($request);
    }
}

終わりに

今回は思いつく限り簡単な実装で独自ドメインへのリダイレクト処理を行ってみました。
もっと他にいい方法があるよ!という方がいらっしゃいましたらコメントいただけると幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0