[英]Requested URL was not found on this server while running a laravel application
我在部署Laravel 5.3应用程序时遇到问题。
我收到一条错误消息,指出在服务器上找不到我的路线。 出乎意料的是,我能够顺利进入欢迎页面,但是如果我尝试单击注册按钮或任何其他路线,则会出现此错误。
我在数字海洋上使用linux 16.04服务器,并且在localhost上一切正常。 我尝试了多种解决方案,但似乎无济于事。 任何帮助深表感谢。
我的路线文件
Auth::routes();
Route::get('/', function () {
return view('login');
})->name('login');
Route::get('/login', function () {
return view('login');
});
Route::get('auth/{provider}', 'Auth\RegisterController@redirectToProvider')->name('auth');
Route::get('auth/{provider}/callback', 'Auth\RegisterController@handleProviderCallback');
Route::group(['middleware' => ['auth']], function(){
//Tasks
Route::get('/task', 'TaskController@index');
Route::get('/task/{taskId}/{notification?}', 'TaskController@view');
Route::get('/create-task', 'TaskController@create');
Route::get('/close-task/{taskId}', 'TaskController@finaliseTask');
Route::post('/reinitialise-task/{taskId}', 'TaskController@reinitialiseTask');
Route::post('/task', 'TaskController@store');
Route::post('/task/comment/{taskId}', 'TaskController@postTaskComment');
//Reports
Route::get('/reports', 'ReportsController@view');
Route::get('/create-report/task/{taskId?}', 'ReportsController@generateReport');
//Settings
Route::get('/settings', 'SettingsController@index');
Route::post('/category', 'SettingsController@storeTaskCategory');
});
我能够访问登录路由,但无法访问其他任何路由。
我已经如下所示设置了我的虚拟主机。
<VirtualHost *:80>
ServerAdmin info@myemail.com
ServerName mydomain.name.com
ServerAlias www.mydomain.name.com
DocumentRoot /var/wwww/html/public
ErrorLod ${APACHE_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
<VirtualHost>
我也很喜欢一个不会强迫我移动文件的解决方案,因为这样做最终会破坏作曲家和工匠。
为了让您的.htaccess接管并处理通过Laravel的路由,您需要告诉您的虚拟主机允许其配置被覆盖(通过.htaccess文件)。
<VirtualHost *:80>
ServerName mysite.com
DocumentRoot "/var/www/mysite/public"
<Directory "/var/www/mysite/public">
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Require all granted
# ADD THIS IF USING PHP-FPM
<FilesMatch "\.php$">
Require all granted
SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>
</Directory>
</VirtualHost>
AllowOverride All
值告诉Apache应用程序可以修改vhost配置。
如果在apachectl -M
的输出中没有看到mod_rewrite
,则需要启用它:
sudo a2enmod rewrite
在进行以下任何更改之后,请确保重新加载Apache:
sudo service apache2 reload
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.