localdisk

PHP とか Java とか Web とか好きなことを書きます。

Laravel で常に https でアクセスさせる

最近、Webサイトに対する攻撃が増えてたり、SPDY がじわじわ普及しているのでこれからの Web サイトは総 https 化するんじゃないかなーと思ってます。

なので、お手元で開発されているアプリケーションもいつでも対応できるようにしておいたほうが後々楽になるんじゃないかと。まぁ .htaccess でもいいんですが、Laravel だとこんなに楽だよという話をします。

app/filters.php にこんな感じで書きます。

<?php
App::before(function($request)
{
    if (!$request->isSecure()) {
        return Redirect::secure($request->path());
    }
});

簡単ですね before フィルターで URL のチェックをして http なら https にリダイレクトしてます。このままだとローカルでの開発でも、https にリダイレクトされてめんどくさいので

<?php
App::before(function($request)
{
    if (!$request->isSecure() && App::environment() === 'production') {
        return Redirect::secure($request->path());
    }
});

enviroment のチェックを入れてやるとよいです。