質問: Laravel5.3です。 特定の動的なページをLaravelで作成し、他のページは静的なHTMLで作られていたとします。 ドキュメントルートは「/var/www/html」と仮定します。 現在のディレクトリ構成は次のような状態です。 ``` html/ index.html css/ js/ images/ ``` ここにLaravelを使用するディレクトリを次のような形で組み込みたいです。なお、他のディレクトリでは使用しません。 ``` html/ index.html css/ js/ images/ laravel/ <- シンボリックリンク /var/www/program/public program/ public/ index.php resources/ views/ index.blade.php ``` hogehoge.com/laravelにアクセスすれば、/var/www/program/resources/views/index.blade.phpの内容が表示されるイメージです。 publicディレクトリに静的なHTMLファイルを全部突っ込んでルーティングをすれば確かに表示はされますが、そうではなく、あくまで静的なHTMLディレクトリの一部分に、動的なページを組み込みたいです。 何か良い方法はございますでしょうか。 追記: なお、シンボリックリンクを貼った上記のやり方ですと、Laravelの404ページは正しく表示されますが、ルーティングをしていてもviewが表示されません。return view('index'); のような書き方をして、Laravelの標準的な構成ならばそのやり方で正しく表示されるのですが、上記のケースの場合は他の記述方法が必要なのでしょうか?
回答: ドキュメントルート直下にLaravelを置く場合、ルーティングするトップページのURLは'/'ですが、上のシンボリックリンクの場合は同じページをリクエストするURLが'/laravel/'になるからルーティング失敗してるんじゃないでしょうか。 試してないですけど .htaccess のRewrite設定で何とかするか、 Laravelの環境設定で ``` APP_URL=http://localhost/laravel ``` のようにするか、 ロジックそのものが変わるので微妙ですがルーティングプレフィクスというのを使って、 https://readouble.com/laravel/5.3/ja/routing.html ``` Route::group(['prefix' => 'laravel'], function () { // この中でルーティング設定 }); ``` みたいな感じにするか、どれかでしょうか。