これを解決するために、インターネット上のすべての可能なサンプルを調べていました。それでも頭が痛いです。
「パブリック」を避けて、ルートディレクトリのwww.mylaravelsite.com/public/
ようにしたいだけです。www.mylaravelsite.com
セキュリティ上の懸念を避けたくないので、これ.htaccess
が最善の方法であることを学びました。
解決策の友達はいますか?
& 対話していただきありがとうございます !
サーバーにこのフォルダー構造があると仮定しましょう
.cpanel/
public_html/
public_ftp/
..
そしてlaravelのフォルダ構造は
app/
bootstrap/
public/
vendor/
composer.json
artisan
..
サーバー上に mylaravelsite というフォルダー名をpublic_html
andpublic_ftp
フォルダーとインラインで作成し、 public フォルダーを除く laravel アプリケーション全体をそのフォルダーにコピーできますpublic_html
。
.cpanel/
public_html/
public_html/packages
public_html/vendor
public_html/index.php
public_html/.htaccess
...
public_ftp/
mylaravelsite/
mylaravelsite/app
mylaravelsite/bootstrap
...
public_html/index.php
次の行を変更します。
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/start.php';
に
require __DIR__.'/../mylaravelsite/bootstrap/autoload.php';
$app = require_once __DIR__.'/../mylaravelsite/bootstrap/start.php';
/mylaravelsite/bootstrap/paths.php
また、パブリックパスを変更することを忘れない でください。それを使用する場合があります。
'public' => __DIR__.'/../public',
に
'public' => __DIR__.'/../../public_html',
サイトが稼働している必要があります。
不足している情報は次のようです。
これは「Web ルート」とも呼ばれます。Apache はこれを特にDocumentRootと呼んでいます。公式の説明については、そのリンクをクリックしてください。
基本的に、サーバーがファイルをプルするディレクトリを設定します。Laravel では、ドキュメント ルートはpublic
フォルダーにする必要があります。
DocumentRoot を に設定するpublic
とhttp://mylaravelsite.com
、ブラウザに移動すると、必要に応じてpublic
フォルダを「ポイント」することになります。
.htaccess ファイル (実際には、仮想ホスト構成DocumentRoot
である可能性が高い) で、サイトの を設定できます。
DocumentRoot /path/to/laravel-app/public
これをどのように設定するかは、ホスティングによって異なります。ホスティングごとにウェブサイトのセットアップ方法が異なるため、具体的にお答えすることはできません。ウェブ ホスティングのテクニカル サポートにご相談ください。重要な点は、public
ディレクトリは Web ルートである必要があり、それ以外はすべて「Web ルートの背後」にある必要があるということです。
公正な警告 tho: 一部のホスティング プロバイダーは、それを達成するための十分なアクセスを提供しません。
.htaccess ファイルが存在しない場合は Laravel ルートに追加し、次の行を追加します。それだけです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Web ディレクトリを にポイントしますpublic/
。Apacheを使用している場合、これは機能します:
<VirtualHost *:80>
DocumentRoot /var/www.mylaravelsite.com/public/
ServerName www.mylaravelsite.com
</VirtualHost>