Laravelはプロジェクトの配下のpublicが公開フォルダと決まっているそうです。
なのでブラウザでアクセスするときにURLにpublicを付けないといけません。
http://localhost/example-app/public/
ただこれってどうもカッコ悪いですね。
ぐぐったら削除する方法がいくつかヒットしました。
https://wynes.info/techblog/archives/5250
やり方としては以下の3つ
- ウェブサーバーの設定でドキュメントルートを設定する
- .htaccessを作成して設置する
- Laravelのディレクトリを移動してシンボリックリンクを張る
(1) ウェブサーバーの設定でドキュメントルートを設定する
ドキュメントルート自体を"example-app/public/"に設定します。
http://localhost
にアクセスするだけでアプリケーションにアクセスできます。
レンタルサーバなどでドキュメントルートが変更できない場合があります。
そうでなければドキュメントルートを変えてやるのが一番お手軽のようです。
C:\xampp\apache\conf\httpd.confを編集します。
252,253行に設定があります。
DocumentRoot "C:/xampp/htdocs"↓
<Directory "C:/xampp/htdocs">
DocumentRoot "C:/xampp/htdocs/example-app/public"Apacheが起動している場合は再起動します。
<Directory "C:/xampp/htdocs/example-app/public">
http://localhost/
だけでLaravelアプリケーションが起動しました。
(2) .htaccessを作成して設置する
これなんですが、参照したサイトが古いみたいですね。
RewriteRule ^ server.php
とありますがpublicフォルダの下にserver.phpなんてありません。
【Laravel 9対応】URLからpublicをなくす
https://zakkuri.life/laravel-remove-public-from-url/
というサイトがLaravel 9に対応した内容が書いてありました。
サーバのルート直下と/publicの下にそれぞれ.htaccessを置けば良いらしい。
まずは最初にやったC:\xampp\apache\conf\httpd.confの編集を元に戻す。
C:/xampp/htdocs/example-appの下に以下の内容の".htaccess"を置く
<IfModule mod_rewrite.c>色々やったんですが結局ダメでした。
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
404エラーになってhttp://localhost/example-app/ではアクセスできません。
これ以上は無理っぽいので一旦ここで止めます。
0 件のコメント:
コメントを投稿