私はこの投稿の3つのソリューションを使用し、正常に動作します。
http://web.archive.org/web/20130320184846/http://forums.laravel.io/viewtopic.php?id=1258
解決策1-シンボリックリンクを使用した代替インストールパス。
これは推奨されるソリューションであり、一般的には万能の良いアイデアです。アプリケーションをpublic_html/に関係のないフォルダーにインストールしてから、パブリックフォルダーをpublic_html/パスにシンボリックリンクすることができます。
例えば:
アプリケーションを/home/applications/mysite.comにインストールします
DocumentRootが/var/www/vhosts/mysite.com/httpdocsを指していると想像してください
mysite.com vhostsフォルダーからhttpdocsフォルダーを削除し、2つをシンボリックリンクで接続します。ln-s /home/applications/mysite.com/public /var/www/vhosts/mysite.com/httpdocs
解決策2-mod_rewriteを使用した.htaccess
このソリューションを使用すると、Laravelをパブリックフォルダーにドロップし、.htaccessファイルを使用してリクエストをパブリックフォルダーにリダイレクトできます。このソリューションは、アプリケーションとコアシステムコードを公的にアクセス可能なフォルダーに配置します。これは、PHPフレームワークで行うことをお勧めするものではありません。
ステップ1.Laravelをドキュメントルートフォルダーに配置します。
手順2.次の.htaccessファイルをドキュメントのルートフォルダに配置します。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
ステップ3.application/ config /application.phpで「url」構成を手動で設定していることを確認してください。そうしないと、Laravelが誤ったURLを生成します。各環境に正しいapplication.url構成があることを確認してください。環境固有の構成の詳細については、http://laravel.com/docs/install#environmentsを参照してください。
解決策3-パブリックフォルダをインストールルートにマージします
このソリューションは、アプリケーションとコアシステムコードを公的にアクセス可能なフォルダーに配置します。これは、PHPフレームワークで行うことをお勧めするものではありません。
public /フォルダーの内容をLaravelインストールフォルダーにコピーし、index.phpファイルのこの行を次のように変更します。
require '../paths.php';
に
require 'paths.php';
バンドル、ライブラリ、またはその他の種類のサードパーティコードは、一般にアクセスできるように設計されていない場合があることに注意してください。
注:bundles/ディレクトリとpublic/bundles/ディレクトリが競合するようになることに注意することも重要です。このアプローチを使用する場合、バンドルが何を公開したいかを正確に知らずに、職人のbundle:publishタスクを使用したくない場合があります。