【问题标题】:Migrate an Laravel app to a domain subfolder将 Laravel 应用程序迁移到域子文件夹
【发布时间】:2020-12-15 05:00:04
【问题描述】:

我要从域中迁移 Laravel 应用程序

[1]http://example.com

到

[2]https://example.com/app.

目前在 [1] 上,一些客户端执行类似“GET /some”的请求。在 [2] 上托管应用程序后,请求是“GET app/some”。

我如何顺利地使路由响应,因为它是从 [1] 调用的,所以我不会更改添加 app 前缀的每条路由?

现在我必须像这样修改所有路线(大约 50 条):

Route::get('app/some', function () {
});

我使用的是 Laravel 5.2(是的,它很旧)。

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    在您的RouteServiceProvider 类中,找到boot 方法,然后为您的网络路由添加前缀。

    原文:

     Route::middleware('web')
                    ->namespace($this->namespace)
                    ->group(base_path('routes/web.php'));
    

    收件人:

    Route::prefix('app')
                    ->middleware('web')
                    ->namespace($this->namespace)
                    ->group(base_path('routes/web.php'));
    

    在 Laravel 旧版本中:

    $router->group(['prefix' => 'app','namespace' => $this->namespace, 'middleware' => 'web',],
    

    【讨论】:

    • 我的RouteServiceProvider 更像$router->group(['namespace' => $this->namespace, 'middleware' => 'web',], function ($router) { ...
    • @Plinio.Santos 我想你可以像 $router->group(['prefix' => 'app','namespace' => $this->namespace, 'middleware' = > 'web',], 函数 ($router) {
    • 更改“RouteServiceProvider”后运行“php artisan route:clear”
    • RouteCollection.php 中仍然出现 NotFoundHttpException:“GET /index.php”404
    • 好消息!我将更改我的答案以添加特定于 Laravel 5.2 的解决方案。
    【解决方案2】:

    尝试使用路由前缀。这是来自 Laravel 官方文档本身的代码示例。

    Route::group(['prefix' => 'admin'], function () {
        Route::get('users', function ()    {
            // Matches The "/admin/users" URL
        });
    });
    

    在您的情况下,将“admin”替换为“app” 文档链接:https://laravel.com/docs/5.2/routing#route-group-prefixes

    【讨论】:

    • 没有像中间件这样最简单的方法来将“app/some”重写为“some”吗?我不想改变我的路线,因为有很多客户依赖“一些”方案......
    • 您可以按照上面的答案,通过更改路线服务提供商的建议进行操作。但是这样一来,所有路径都将始终具有应用程序前缀,并且您将失去未来的灵活性。如果你使用我建议的方法,你可以有不同的路径带/不带前缀。
    • 为了清楚起见,您不必为每条路由单独添加组前缀。只需在您需要的所有路径周围放置一个即可。
    • 没错。我的问题是做最小的更改来修改所有路由以在前缀中回答。我相信您的回答也会对许多开发人员有所帮助。泰。
    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 2016-09-14
    • 2019-09-21
    • 1970-01-01
    • 2016-08-18
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多