1

私の顧客のために、私はウェブサイトを構築しています。これには、Laravel フレームワークを使用します。これで、パブリック ディレクトリを DocumentRoot として設定することがベスト プラクティスであることがわかりましたが、それができないという問題があります。そこで、いくつかの調査を行ったところ、.htaccess を使用してこの小さな問題を処理できることがわかりました。laravel フォーラムにあるスニペットは次のとおりです。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

しかし、これを試すと、500 Internal Server エラーが発生します。問題は4行目の部分であることがわかりました(.*)...しかし、何が問題なのかわかりません。

このスニペットの何が問題なのか、誰もが知っていますか?なぜ500エラーが発生するのですか...

4

2 に答える 2

2

あなたはほとんどそこにいます。REQUEST_URI先頭のスラッシュを含みます/。だからあなたは言わなければならない

RewriteCond %{REQUEST_URI} !^/public
于 2013-03-25T14:20:37.943 に答える
0

パブリックフォルダーのパスを変更しないでください。通常の laravel ツリーをコピーして、/public/.htaccess で次を使用します

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

これはL3でうまくいきました。

于 2013-04-02T13:53:22.610 に答える