Webサービス開発

Laravelでindex.php付きではアクセスできるのに、省略するとアクセスできなくてはまった話

やろうとした事

Laravelプロジェクトをを任意のディレクトリに作成して、「https://XXX.com/sample/」のようなURLでアクセスしようとした。

.htaccessで下記のように記載

RewriteEngine On
RewriteRule ^sample/(.*)$ /AAAAA/sample/public/$1 [QSA,L]

「 https://XXX.com/sample/ 」ではアクセスできず、Laravelの404ページが表示され、「https://XXX.com/sample/index.php 」でアクセスするとWelcomeページが表示された。

結論

laravelのルーティングで、「sample」の文字列があったために正しくルーティングされなかった。

routes/web.phpを下記のように修正して解決した。

Route::get('/sample/', function () {
    return view('welcome');
});

過程

「public/index.php」にデバッグを入れてみると、アクセスは来ている。

「$_SERVER["REQUEST_URI"];」をダンプしてみると、「/ sample /」となっていたので、ルーティングがされていないと予想。

laravelのルーティングの場所を調べて、変更してみたらうまくいった。

ABOUT ME
hazukei
「はずけい」と申します。 この度一児の父となりました。まだ実感はわかないのですが、猛烈に忙しくなりそうです。楽しみつつ頑張りたいと思います!