2013-07-21 4 views
19

私はLaravel 4の新機能だけでなく、フレームワークを初めて使用しています。私はLaravelがこのような良いレビューを得てから始めると思った。 私はLaravelをうまくインストールしています。私は/ l4/publicに行き、ウェルカムページを見ます。Laravel 4単純なルートはmod_rewriteと.htaccessを使用していません

routes.phpへのルートを追加しようとしているので、/ l4/public/articlesに移動すると応答が返されます。
リクエストされたURL/l4/public/articlesがこのサーバー上に見つかりませんでした。ルートをコンパイルするために職人のコマンドを実行する必要がありますか?それはおそらく何か簡単です。なぜこのメッセージですか?基本的にルータがあなたの要求を見つけていないことを言うエラー

Route::get('/', function() 
{ 
    return View::make('hello'); 
}); 

Route::get('articles', function() 
{ 
    //return View::make('articles'); 
    return "Articles hello there"; 
}); 
+1

<Directory /> AllowOverride **all** Require all granted </Directory> 

にconfに変更

<Directory /> AllowOverride **non** Require all granted </Directory> 

、その後のコメントを解除

**#**LoadModule rewrite_module modules/mod_rewrite.so 

あなたはmod_rewriteをサーバー上で有効になってしまいましたか? – Laurence

+2

いいえ、私はしません。ラーヴェルはそれを期待していますか? –

+7

なぜ、Laravelはshittyチュートリアルでmod_rewriteを有効にする必要があると言っていないのですか? – Sliq

答えて

44

問題はApacheのhttpd.confファイルの2つの編集の変更によって解決されます。

AllowOverrideデフォルトはNoneです。 AllowOverrideは、.htaccessファイルを処理するかどうかを制御します。

デフォルトでは、mod_rewriteはコメントアウトされています。作るために

変更:

変更1:それのコメントを外すことでmod_rewriteを有効にします。

変更2:

AllowOverride All 

変更

AllowOverride None 

今すぐにApacheを再起動...

Laravelは指定したパブリックフォルダで提供デフォルトの.htaccessファイルいくつかのmod_rewriteルールAllowOverrideがnoneに設定されているため、これらのルールは適用されませんでした。これらの設定を変更した後は、必ずApacheを再起動してください。 自分の設定:Windows XPのApache 2.4.6。

AllowOverrideの変更にはセキュリティ上の影響があるようです。誰かがこれに関する追加情報を持っているなら、それを聞きたいと思います。

+3

に持っていることを確認してください。すべて有効にしていますが、まだ2番目のルートを取得できません。 "/"は動作しますが、 "index.php/articles"は動作しますが、 "articles"は動作しません。 – yaz

+2

フォローアップしてください。唯一の方法は、仮想ホストを作成することでした(ここの手順:http://apple.stackexchange.com/questions/30053/getting-mod-rewrite-to-work-on-mac-os-x) – yaz

+0

私は試しましたこのポストに落ちる前に、非常に多くの異なるもの。ここで大きな答えは、すべての私の問題を解決した。偉大な答えをありがとう。ソリューションはまだ2014年7月28日の時点で動作しています – TheOneWhoPrograms

1

routes.phpの

。変更を保存しておいてください。 artisanコマンドを使用してページを実行している場合は、コマンド「artisan Serve」をもう一度やり直してください。

0

mod_rewriteが必要です。試してみてください:l4/public/index.php/articles

+0

はい、私はl4/public/index.php/articlesを試してみました。今私はなぜそれを理解しようとしています。 mod_rewriteでApache 2.4をコメントアウトしました。 phpinfo()はmod_rewriteがロードされていないことを示します。 Laravelはデフォルトの.htaccessファイルを持っています。とにかくURLの書き換えが起こっていますか?なぜl4/public/articlesのパスを使用できないのですか? –

+0

私はすでにそれを言っています、あなたはmod_rewriteを有効にして、いくつかの研究をする必要があります。また、このhtaccess https://github.com/laravel/laravel/blob/master/public/.htaccessを公開フォルダ –

0

httpd。

LoadModule rewrite_module modules/mod_rewrite.so 
関連する問題