私はlaravelを学び始めたばかりです。そして、nettuts+ (url shortner) から小さなサンプル プロジェクトを見つけました。それはうまく機能しますが、私が直面する唯一の問題は、(:any) ルートが機能しないことです。これが私がファイルに持っている3つのルートです。
Route::get('/', function()
{
return View::make('home.index');
});
Route::post('/', function()
{
$url = Input::get('url');
// Validate the url
$v = Url::validate(array('url' => $url));
if ( $v !== true ) {
return Redirect::to('/')->with_errors($v->errors);
}
// If the url is already in the table, return it
$record = Url::where_url($url)->first();
if ( $record ) {
return View::make('home.result')
->with('shortened', $record->shortened);
}
// Otherwise, add a new row, and return the shortened url
$row = Url::create(array(
'url' => $url,
'shortened' => Url::get_unique_short_url()
));
// Create a results view, and present the short url to the user
if ( $row ) {
return View::make('home.result')->with('shortened', $row->shortened);
}
});
Route::get('(:any)', function($shortened)
{
// query the DB for the row with that short url
$row = Url::where_shortened($shortened)->first();
// if not found, redirect to home page
if ( is_null($row) ) return Redirect::to('/');
// Otherwise, fetch the URL, and redirect.
return Redirect::to($row->url);
});
最初の 2 つのルートは正常に機能しますが、3 番目のルートはアクティブになりません。URLにindex.phpを指定して呼び出す場合にのみ機能します。/index.php/abc と同様ですが、/abc でも機能するはずです。また、アプリケーション構成ファイルからも index.php 設定を削除しました。
修正するのを手伝ってくれませんか?