laravelでルーティングがうまくいかない場合の忘備録

    

ある端末では動作していたルーティングをソース管理を経由して別端末で動作させようとしたところ、「Sorry, the page you are looking for could not be found. 」と404ページに遷移してしまう現象が発生した。

ソースをソース管理にインポートした端末では問題なく稼動する。
移行先の端末ではトップページのみ表示可能であった。ルーティングになんらかの問題があるのではないかと考えられる。

端末OS: windows10
PHP: 7.1.9
Laravel: 5.5

■ ルーティングの確認

php artisan route:list

上記のコマンドでルーティングの確認を行った。
問題なくルーティングが認識できることを確認した。

 

■ webサーバの設定確認

mod_rewriteの設定は問題ない。
.htaccessも稼働している。

— 下記の内容で確認 —

試しに.htaccessを削除するとapache側の404ページが開かれる。
→ .htaccessは認識されている

トップページ以外を開いた場合laravelの404ページが表示される。.htaccess内のmod_rewriteの設定を書き換えた所apache側の404ページが表示されるように変化した
→ mod_rewriteは動作している

■ キャッシュのクリア

下記コマンドにてルーティングキャッシュのクリアを実施したが変化がなかった。

php artisan route:clear

■ 原因とまとめ

環境を比較すると、移行元の端末のアプリケーションディレクトリ名が全て小文字に対し、リポジトリ上のディレクトリ名は大文字・小文字混在となっていた。
移行先端末のディレクトリ名を全て小文字に変更したところ動作することを確認できた。

具体的に大文字・小文字が混在することで、なぜこの現象を引き起こすのかまでは追い切れていませんが、ディレクトリ名によりこのような現象が発生することもあるということで忘備録として残します。