ページビューの合計

2023年2月14日火曜日

Laravel: URLからpublicを除外する

 Laravelはプロジェクトの配下のpublicが公開フォルダと決まっているそうです。
なのでブラウザでアクセスするときにURLにpublicを付けないといけません。
http://localhost/example-app/public/

ただこれってどうもカッコ悪いですね。
ぐぐったら削除する方法がいくつかヒットしました。

https://wynes.info/techblog/archives/5250

やり方としては以下の3つ    

  1. ウェブサーバーの設定でドキュメントルートを設定する
  2. .htaccessを作成して設置する
  3. 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"
<Directory "C:/xampp/htdocs/example-app/public">
Apacheが起動している場合は再起動します。

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 件のコメント:

コメントを投稿

Laravel再学習

フロントエンド系の方に興味が行っていましたがまたバックエンド系に戻ってきました。 Laravelです。 かなり忘れてます、自分のブログを見ながらもう一度です。 今回はMVCパターン、そして Eloquentを使えるようになるのが目的です。 まずはプロジェクト作成から 1. Com...