nanisore oishisou

プログラマ、ララ・ベル子さん改めArm4さんのゆるふわ奮闘記。

Laravelでroutingは合ってるはずなのに404not foundが出るときにやること

暑いですね!
家族全員が昼寝をするという稀にみる好機に恵まれたベル子です。
こんなときにブログを書かなくて、いつ書くんすか!
\今です!/

本日のテーマはタイトルのとおりですが、大事なことなのでもう一度言います。

Laravelでroutingは合ってるはずなのに/(ルート)以外で404 not foundや500 Internal Server Error が出るときにやること!


簡単にまとめると→このやりとりを参照するだけです!
ですが、さすがにリンクを貼って終わりというのは不親切なので、やることを抜き出してみます。

[やること1]
artisanコマンドでルートが本当に存在するのか確認してみる。

一番ハマりやすい罠といえば「私が間違うはずがない」という自信。

php artisan routes

[やること2]
httpd.confを確認してみる。

sudo vim /etc/httpd/conf/httpd.conf

httpd.confの内容が以下になっているか確認。
DocumentRootは各人の環境に合わせてくだされ。
DocumentRoot "/var/www/html/laravel/public/"

<Directory "/var/www/html/laravel/public">
Allowoverride All
</Directory>

[やること3]
laravel/public配下の.htaccessの内容が以下になっているか確認する。

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</ifModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</ifModule>


500 Internal Server Errorの場合はRewriteRuleを

RewriteRule ^ /index.php [L] 

RewriteRule ^(.+)$ /index.php/$1 [L] 


のように変えてみるとエラーが消えるかもしれないです。
(教えてもらったことをまるで自分発信かのように差し込みました。てへぺろ

▼参考
500 Internal Server Error for all routes other than '/'

[やること4]
app/storageのパーミッションを確認する。

ls -l app



それでもうまくいかない場合は
お昼寝かお散歩でもして気分をリフレッシュしてください。

間違っても横山光輝三国志を読み始めてはいけません。
あれで私は、連日、満喫泊をせざるを得なくなるという壮絶な日々を送ることになりました。

孔明がまさかあんな方法であんなことをするなんて.....
おっと、いけない。

じゃあ、またね!