42

これを解決するために、インターネット上のすべての可能なサンプルを調べていました。それでも頭が痛いです。

「パブリック」を避けて、ルートディレクトリのwww.mylaravelsite.com/public/ ようにしたいだけです。www.mylaravelsite.com

セキュリティ上の懸念を避けたくないので、これ.htaccessが最善の方法であることを学びました。

解決策の友達はいますか?

& 対話していただきありがとうございます !

4

9 に答える 9

58

サーバーにこのフォルダー構造があると仮定しましょう

.cpanel/
public_html/
public_ftp/
..

そしてlaravelのフォルダ構造は

app/
bootstrap/
public/
vendor/
composer.json
artisan
..

サーバー上に mylaravelsite というフォルダー名をpublic_htmlandpublic_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',

サイトが稼働している必要があります。

于 2013-11-12T08:12:13.113 に答える
15

不足している情報は次のようです。

ドキュメントルート

これは「Web ルート」とも呼ばれます。Apache はこれを特にDocumentRootと呼んでいます。公式の説明については、そのリンクをクリックしてください。

基本的に、サーバーがファイルをプルするディレクトリを設定します。Laravel では、ドキュメント ルートはpublicフォルダーにする必要があります。

DocumentRoot を に設定するpublichttp://mylaravelsite.com、ブラウザに移動すると、必要に応じてpublicフォルダを「ポイント」することになります。

.htaccess ファイル (実際には、仮想ホスト構成DocumentRootである可能性が高い) で、サイトの を設定できます。

DocumentRoot /path/to/laravel-app/public

これをどのように設定するかは、ホスティングによって異なります。ホスティングごとにウェブサイトのセットアップ方法が異なるため、具体的にお答えすることはできません。ウェブ ホスティングのテクニカル サポートにご相談ください。重要な点は、publicディレクトリは Web ルートである必要があり、それ以外はすべて「Web ルートの背後」にある必要があるということです。

公正な警告 tho: 一部のホスティング プロバイダーは、それを達成するための十分なアクセスを提供しません。

于 2013-11-12T13:59:41.253 に答える
6

.htaccess ファイルが存在しない場合は Laravel ルートに追加し、次の行を追加します。それだけです。

<IfModule mod_rewrite.c>  
   RewriteEngine On 
   RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
于 2017-08-15T14:10:53.130 に答える
5

Web ディレクトリを にポイントしますpublic/。Apacheを使用している場合、これは機能します:

<VirtualHost *:80>
  DocumentRoot /var/www.mylaravelsite.com/public/
  ServerName www.mylaravelsite.com
</VirtualHost>
于 2013-11-12T07:33:56.327 に答える