Laravel 5.4 通过子域运行所有路由

Posted

技术标签:

【中文标题】Laravel 5.4 通过子域运行所有路由【英文标题】:Laravel 5.4 running all routes through subdomain 【发布时间】:2018-02-27 01:27:21 【问题描述】:

我刚刚在共享主机上使用 Composer 部署了 Laravel 5.4,我遇到了几个我认为现在已经解决的问题。

第一个是文件夹权限,现在已修复,所以至少我看到了一个欢迎页面。

我注意到 composer install 从来没有创建路由目录,所以我上传了一个本地版本,它也从来没有在我修复的 boostrap 文件夹中创建缓存目录。

我已经在一个子域上安装了 Laravel,我希望一切都通过子域运行,因为根文件夹有不同的应用程序。

如果我进入子域,欢迎页面会按预期打开,但一旦我尝试使用不同的路线,就会收到以下错误:

RouteCollection.php 第 145 行中的 NotFoundHttpException:

我查看了其他人对子域所做的事情,但对我没有任何帮助。不知道安装过程中是否还有其他文件丢失

这就是我在 Routes.php 中的内容

Route::group(['domain' => 'subdomain.example.com'], function () 
    Route::get('/', function () 
        return view('welcome');
    );

    Route::get('test', function () 
        return view('welcome');
    );
);

我假设每个路由都需要在子域路由组中运行,或者我是否需要使用它,因为安装在子域目录中并且 vhost 指向子域公共文件夹

【问题讨论】:

【参考方案1】:

原来是命令行在 Plesk 上使用的 PHP 版本有问题。

目前 Plesk 在 5.4 中运行,而 Laravel 需要 5.6。出于某种原因,Composer 运行成功,但似乎无法下载某些文件。

我擦除了子域中的所有内容,感谢http://blogs.reliablepenguin.com/2015/08/18/using-php-composer-phar-with-non-default-php-install,我能够使用 php 版本 5.6 运行 composer

我不需要子域的任何特殊路由,因为所有内容都在子域中,并且这些路由按预期工作

Route::get('/', function () 
    return view('welcome');
);

Route::get('test', function () 
    return view('welcome');
);

【讨论】:

以上是关于Laravel 5.4 通过子域运行所有路由的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 子域路由设置

我的子域路由覆盖了我在 laravel 7 中的正常网络路由

Angular 4 和 Laravel 5.4 的刷新路由问题

Laravel 路由在 2 个环境中与子域一起使用

Laravel 5.4:从 CSRF 验证中排除带有参数的路由

如果路由不在子域中,Laravel 子域路由重定向到 404