繁体   English   中英

运行laravel应用程序时在此服务器上找不到请求的URL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM