URLからパブリックを削除する4つの最良の方法。
他のトリックを使用してURLからpublicを削除した場合は、server.phpの名前をindex.phpに変更し、コアファイルパスに変更します。明らかに、それをしないでください。では、Laravelがこのような解決策を提供しないのは、それを行う適切な方法ではないためです。
1)Laravelのhtaccessを使用してURLからpublicを削除します
ルートに.htaccessファイルを追加すると、パブリックなしでWebサイトにアクセスできます
<ifmodule mod_rewrite.c>
<ifmodule mod_negotiation.c>
Options -MultiViews
</ifmodule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</ifmodule>
2)ローカルに仮想ホストを作成してパブリックを削除します
ここでは、Windowsオペレーティングシステムのデモを行っています。しかし、私はステップを定義して、誰でも簡単にステップをたどれるようにします。特定のオペレーティングシステムについて、Googleで同じことを調べることもできます。
手順1: C:\ Windows \ system32 \ drivers \ etc \に移動し、管理者モードで「hosts」ファイルを開きます。
手順2:次のコードを追加します。ここでは、projectname.local domain name demoのデモを提供しています。好きなように指定できます。すべての場所で一定にしてください。
127.0.0.1 projectname.local
ステップ3:次にC:\xampp\apache\conf\extra
、xamppユーザーとwampユーザー"C:\wamp\bin\apache\Apache2.4.4\conf\extra"
および"httpd-vhosts.conf"
ファイルを開きます。次のコードを追加します。
注:プロジェクトに従ってドキュメントルートを変更し、「hosts」ファイルに定義したドメイン名を追加します。
<VirtualHost projectname.local>
ServerAdmin projectname.local
DocumentRoot "C:/xampp/htdocs/projectdir"
ServerName projectname.local
ErrorLog "logs/projectname.local.log"
CustomLog "logs/projectname.local.log" common
</VirtualHost>
ステップ4:最後ですが重要なステップは、XamppまたはWampを再起動してURLにアクセスhttp://projectname.local
することです。そうすると、LaravelはパブリックURLなしで応答します。
3)Laravelでコマンドを実行してパブリックを削除します
ローカルで作業している場合は、ターミナルまたはコマンドラインツールから次のコマンドを実行するだけで、何もする必要はありません。その後、コマンドラインから提供されたURLを使用してWebサイトにアクセスできます。
> php artisan serve
特定のIPでプロジェクトを実行する場合は、次のコマンドを実行する必要があります。LANで作業している場合、他の人がローカルからWebサイトにアクセスできるようにするには、コマンドに従ってIPアドレスを取得した後、コマンドラインで「ipconfig」を実行してIPアドレスを確認するだけです。
> php artisan serve --host=192.168.0.177
特定のポートを持つ特定のIPでプロジェクトを実行する場合は、次のコマンドを実行する必要があります。
> php artisan serve --host=192.168.0.177 --port=77
4)ホストされているサーバーまたはcpanelのパブリックを削除します
プロジェクトの完了後、サーバーでプロジェクトをホストする必要があります。次に、ドメインのドキュメントルートをパブリックフォルダーに設定するだけです。以下のスクリーンショットを確認してください。
スクリーンショットのように、public_htmlにプロジェクトフォルダーがない場合は、ドキュメントルートをのように設定するだけです"public_html/public"
。
ここから引用