ホーム » 記事一覧 » .htaccess » Laravelをドキュメントルート直下に置いて公開する.htaccess

Laravelをドキュメントルート直下に置いて公開する.htaccess

Laravelフレームワークは通常は /public ディレクトリをドキュメントルートに設定することで公開することが推奨されています。

その理由としてはプロジェクトルートからアプリケーションを提供すると、多くの機密設定ファイルが公共のインターネットに公開されるためです。

一般的にはapacheの設定ファイルを変更することでドキュメントルートを /public ディレクトリに指定するか、シンボリックリンクで同様の状況を作り出す方法が考えられます。

ただし、共有サーバー(レンタルサーバー)などftpでしかファイル送信する選択肢がない場合は、今回紹介する .htaccess を使用することで解決できます。

ディレクトリ構成としては以下になります。public_html がドキュメントルートになっています。

└── public_html/ (ドキュメントルート) (Laravelプロジェクトの全ファイルを設置)
    ├── .htaccess
    └── public/

htaccess はこちらです

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_URI} !/public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

<FilesMatch "^\.">
    Require all denied
    Satisfy All
</FilesMatch>

これで全てのアクセスが /public 配下にリライトされるようになります。

注意点としては

https://<ドメイン>/public/*

でトップページ等の全てのページが表示されるようになります。public配下にもリライト設定をしてしまうと無限ループが発生してしまうのでこれは許容する必要があります。

このデメリットも理解してLaravelをドキュメントルート直下で公開していきましょう。

投稿者

ここまで読んでいただき、ありがとうございます。

このサイトでは、私自身が関わっていることや、興味を持って試していることをそのまま置いています。

内容を見ていて、
「少し話を聞いてみたい」
「協業できる部分がありそう」
と感じる点があれば、下記のお問い合わせフォームからご連絡ください。状況を確認したうえで、必要な範囲でお返事します。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です