2014-09-06 99 views
0

我是Laravel的新手,我試圖創建我的第一條路線,但只有在URL中放入了一個ID時纔有效。如果我沒有放置任何ID(以斜線結尾),它會將我重定向到我的服務器的根目錄。我讀here,我應該在.htaccess中刪除Laravel的重寫規則,但它仍然不起作用。調用控制器重定向到根

我的路線:我的控制器的

Route::get('musibitmedias/{id}', '[email protected]'); 
Route::get('musibitmedias', '[email protected]'); 

部分:我的.htaccess文件的

# Handles "GET /" request 
public function getIndex($id) 
    { 
     return View::make('musibitmedia')->with('musibitmedias', Musibitmedia::all()); 
    } 

內容

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    # RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule> 

任何幫助將不勝感激。

謝謝!

回答

0

哈希此行../public/.htaccess

RewriteRule ^(.*)/$ /$1 [L,R=301] 

# RewriteRule ^(.*)/$ /$1 [L,R=301] 
+0

已經做了並重新啓動了Apache,以防萬一。 – MusicAndCode 2014-09-07 12:47:11

0

由於這些路由都指向相同的方法,您可以通過指示參數id參數可能存在或不存在,並在控制器方法中爲其設置默認值來執行此操作。

路線:

Route::get('musibitmedias/{id?}', ['uses' => '[email protected]']); 

控制器:

public function getIndex($id = false) 
{ 

    // Is there other code involved? Where is `$id` used? 

    return View::make('musibitmedia', ['musibitmedias' => Musibitmedia::all()]); 

} 

這並不奇怪,你正在經歷一些奇怪的行爲,與當前的設置,如果你打/musibitmedias,它期待一個參數被傳遞。

+0

感謝先生。格里芬,你的解決方案解決了另一個問題,我有:-)但如果我像這樣調用我的控制器:mysite.com/public/controller/,我仍然重定向到mysite.com/controller,它不存在。看來最後的斜線是問題。 – MusicAndCode 2014-09-07 04:14:12

相關問題