2017-01-17 119 views
0

我剛剛開始學習laravel,我一直在尋找這個答案。我一直在按照教程一步一步啓動它,並讓它運行歡迎屏幕,但如果我點擊登錄或註冊它說該文件不存在。但是,如果我製作路線。Laravel 5.3找不到登錄頁面

Route::get('/', function() { 
    return view('auth/login'); 
}); 

它找到頁面並顯示它。

這裏是鏈接到登錄頁面。

<div class="panel panel-success"> 
      <div class="panel-heading">List of Game of Thrones Characters</div> 

       @if(Auth::check()) 
        <p>Success</p> 
       @endif 


     </div> 
     <?php 
      echo getcwd() . "\n"; 
     ?> 

     @if(Auth::guest()) 
      <a href="/login" class="btn btn-info"> You need to login to see the list >></a> 
     @endif 

在href標記我試圖/ auth /中登錄,/登錄,任何的組合,你可以嘗試,它會找不到該文件不管是什麼。這是我試圖讓這個工作的路線。

Route::get('/login', function() { 
    return view('auth/login'); 
} 

任何人都可以解釋爲什麼這不工作?我到處尋找,這似乎是正確的方式來稱呼這一點。記得我剛剛獲得了開始模板的工作。

+0

如果將錨標記更改爲'index.php/login',它會工作嗎?如果是這樣,那麼你需要設置一個URL重寫,將所有請求重寫爲'index.php'。 – BrokenBinary

+0

你忘了添加閉括號和分號,就像這樣:');' – Paras

+0

是的,它的工作原理!我會怎麼做呢? –

回答

2

您需要在Web服務器中設置Web服務器重寫。

最簡單的處理方法是在public/目錄中使用.htaccess文件。這是默認.htaccess文件Laravel 5.3:

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

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

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

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

你還需要確保mod_rewrite Apache模塊已啓用。你可以通過運行啓用模塊並重新啓動Apache的這兩個命令來實現:

a2enmod rewrite 
service apache2 restart 
+0

也必須啓用apache才能重寫。謝謝 –