2017-08-08 229 views
1

在我的laravel項目路由不能正常工作。當我去/交換時,我得到404錯誤。重新排序工作很好。Laravel路由錯誤404

<?php 
Route::group(['middleware' => ['web']], function() { 

Route::get('/', function() { 
    return redirect('exchange'); 
}); 
Route::get('exchange', function() { 
    return view('exchange'); 
}); 

Route::get('tos', function() { 
    return view('tos'); 
}); 
Route::get('contact', function() { 
    return view('contact'); 
}); 

Route::controller('admin', 'AdminController'); 

}); 

我的.htaccess文件:

<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> 

我必須做修復我的項目?

+0

其他路線工作??? –

+0

不,總是404 – Szustka124

+0

你使用哪個laravel版本? –

回答

0

你缺少一個重要的指導在Apache中

AllowOverride All

定義它的httpd.conf文件,使您的.htaccess和URL重新寫入由服務器兌現。

爆炸它,允許所有類型的覆蓋。

<Directory "PATH_TO_PROJECT"> 
    AllowOverride All 
</Directory> 

最低限度,使其工作。只允許覆蓋修改文檔類型和重寫。

<Directory "PATH_TO_PROJECT"> 
    AllowOverride FileInfo 
</Directory> 
+0

我在我的apache2.conf中添加了這個,並且在重新啓動後,當我到達站點時,我得到了內部服務器錯誤 – Szustka124

+0

檢查日誌以獲得確切的錯誤消息500內部服務器錯誤過於籠統另外,路徑必須指向你的Laravel項目的'/ public'文件夾,它包含'index.php'引導程序和Laravel'.htaccess' – MiSAKACHi

0

你必須增加: -

的AllowOverride所有到等/ Apache2的apache2.conf文件

<Directory /usr/share> 

AllowOverride All 
    Require all granted 
</Directory> 

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

它將處理路由錯誤。