【发布时间】:2020-07-09 03:54:37
【问题描述】:
在路由中添加子域的正确方法是什么?我有一个 laravel/homestead 项目在我的本地计算机上运行,但是当我将它移动到共享主机服务器 HostGator 时,它不再起作用。主页可以正常工作,但子页面的链接却不行。
例如,以下路由在我的本地版本上运行良好:
Route::get('/appointments', 'AppointmentController@index');
但如果我在远程服务器上使用该路由,它会将其带到 tekknow.net/appointments 而不是 tekknow.net/medaverter/appointments。
所以我按照这里的说明进行操作: https://laravel.com/docs/5.6/routing#route-group-sub-domain-routing 并添加了这样的前缀:
Route::prefix('MedAverter')->group(function() {
Route::get('/appointments', 'AppointmentController@index');
});
但这也不起作用。它也转到 /tekknow.net/appointments
我也尝试将路线更改为:
Route::get('/MedAverter/appointments', 'AppointmentController@index');
但这也去了 tekknow.net/appointments
有人知道我做错了什么吗?
编辑:我进入我的 HostGator cPanel 并查看了我的所有子域,发现我的子域根目录是 medaverter.tekknow.net,它链接到 medaverter.tekknow.net/MedAverter 的文档根目录它被重定向到http://www.tekknow.net/MedAverter。所以我将我的文件夹从 medaverter 重命名为 MedAverter 以匹配子域重定向。
这是一个屏幕截图,显示了我在 cPanel 中看到的 Subdomains.Root Domain、Document Root 和 Redirection 列
【问题讨论】:
-
我有点困惑。您提到了“子域”,但从代码看来,您正试图在子路径“medaverter”中部署 Laravel。那么它是子域(例如
medaverter.tekknow.net)还是子路径(例如tekknow.net/medaverter)?我认为您还应该描述您的部署目录结构,以帮助其他人分析您的问题 -
你想去
medaverter.tekknow.net/appointments吗? -
在我的 HostGator 帐户中,medaverter.tekknow.net 被定义为转到 www.tekknow.net/medaverter。我不知道您是否称其为子域或子路径。
-
哪个域正在读取您的应用程序公用文件夹?
-
是的,如果我输入 medaverter.tekknow.net,它会将我带到 tekknow.net/medaverter。我有很多子域。每个都有自己的公用文件夹。