LaravelのURLからpublicを消す

noimage

Laravelのプロジェクトを公開する時に普通はDocumentRootをプロジェクトのpublicディレクトリに指定しますが、サブディレクトリでの公開だったりDocumentRootを弄れない時にURLがhttps://example.com/public やhttps://example.com/sub/publicとなってしまうのを直す方法です。

この解決法を調べると基本的にはpublicフォルダーの中身をプロジェクトのルートに持ってきてindex.phpを編集したりする方法が出てくるのですが、個人的にこの方法は嫌いなのでどうにかしてhtaccessの編集だけで解決出来ないかを探していたところ、次のGistにたどり着きました。

liaotzukai/Php laravel 5.5 project .htaccess file

こちらの.htaccessファイルをlaravelのプロジェクトのルートディレクトリに配置することで、https://example.comやhttps://example.com/subにアクセスした時にDocumentRootを設定していなくてもきれいなURLでアクセスすることが可能になります。