在我的laravel项目中,路由工作不正常。当我去/交换时,我得到错误404. Redictering效果很好。
<?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)
您缺少Apache中的重要指令
AllowOverride All
在httpd.conf文件中定义它,以便服务器尊重您的.htaccess
和URL重写。
爆炸,允许所有类型的覆盖。
<Directory "PATH_TO_PROJECT">
AllowOverride All
</Directory>
使其成功的最低要求。仅允许修改文档类型和重写的覆盖。
<Directory "PATH_TO_PROJECT">
AllowOverride FileInfo
</Directory>
答案 1 :(得分:0)
您必须添加: -
AllowOverride All 到etc / apache2 apache2.conf 文件
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
它将处理路由错误。