ドドスコblog

Apache LaravelでHelloWorldを出そうと思ったらつまづいた

Apacheエイリアス使ってHelloWorld出すのに時間がかかってしまった。

httpd.conf

## http://localhost/laravelapp/publicをhttp://localhost/でアクセスできる
Alias / "/MAMP/htdocs/laravelapp/public/"

<Directory "/MAMP/htdocs/laravelapp/public/">
    Options Indexes FollowSymLinks MultiViews
    ##.htaccessを有効にする。
    AllowOverride all
    ## アクセス許可してから拒否
    ## 特定のアクセスを拒否したい場合に記述する。
        Order allow,deny
    ## 全てのアクセス許可
    Allow from all
</Directory>

*localhost/helloにルーティング

web.php

Route::get('hello', function (){
    return '<html><body><h1>Hello</h1><p>this is sample page.</p></body></html>';
});

ここまで順調に行けたのにlocalhost/helloにアクセスするとerror500が出てしまった。

apacheで500errorが出た場合の対処法

  • とにかく初めに.htaccessを確認すること

今回の500errorの原因

  • .htaccessに記述漏れ
  • RewriteBase /を記述することでrewite処理後のベースURLを設定する。
<IfModule mod_rewrite.c>
...
    RewriteBase /
...
</IfModule>