質問: Laravelをインストールするとroutesフォルダのweb.phpには以下のようなコードが書かれていると思います。 ``` Route::get('/', function () { return view('welcome'); }); ``` これは、http://localhost:8000にアクセスするとwelcome.blade.phpの画面が開くという意味であるという旨を本で読みました。 しかし'/'に相当するアドレスにアクセスしてもwelcomeのページが表示されません。 現在MAMPで作ったローカル環境でLaravelを動かしており、ドキュメントルートは以下のパスに設定しています。 /Applications/MAMP/htdocs そしてhtdocsの下にlaravelappという名前でLaravelのプロジェクトを作っています。 僕の認識だと、/Applications/MAMP/htdocs/laravelappがweb.phpの'/'に相当するものだと思っているのですが、これが間違いだということでしょうか?つまり、http://localhost/laravelappにアクセスすればwelcomeページが表示されるものだと思っています。 しかし実際はhttp://localhost/laravelapp/public/にアクセスしないとwelcomeページが表示されません。 いまいちルーティングの動作について分かっていません。 僕の認識のおかしなところがあれば教えていただきたいです。 よろしくお願いします。
回答: > > 僕の認識だと、/Applications/MAMP/htdocs/laravelappがweb.phpの'/'に相当するものだと思っているのですが、これが間違いだということでしょうか? > > > 少し違うようです。 ドキュメントルートを`/Applications/MAMP/htdocs/laravelapp/public`にした場合、`localhost:8000(/index.php)`がルーティングの`/`になります。 `localhost:8000/user`だと`(/)user`、 `localhost:8000/foo/bar/hoge`だと`(/)foo/bar/hoge`ですね。 `laravelapp/public/index.php`が全ての処理の起点と考えてください。 もしドキュメントルートを何らかの理由で`/Applications/MAMP/htdocs/laravelapp/public`にできない場合は`/Applications/MAMP/htdocs`に`/Applications/MAMP/htdocs/laravelapp/public`へのシンボリックリンクを張ってもいいかもしれませんね。