为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 5.8 使用子域作为 domain.com/api 旁边的 API 端点

Laravel 5.8 使用子域作为 domain.com/api 旁边的 API 端点

PHP
慕姐4208626 2021-11-26 16:37:22
我有一个带有一些 API 端点的生产服务器。我只想制作一个更漂亮的系统,将所有 API 调用从domain.com/api/v1/xxxxxx像api.domain.com/v1/xxxxxx到目前为止,我只是在 cPanel 创建子域:api.domain.com 然后将该子域指向 laravel 的public_html文件夹(我做了public -> public_html重命名的技巧😁)然后在api.php中添加路由映射域://SubDomain MappingRoute::group(['domain' => 'api.bachecubano.com'], function () {    Route::group(['prefix' => 'v1'], function () {        Route::get('categories', 'Api\AdController@get_categories')->name('api_get_categories');    });});并尝试api.domain.com/v1/xxx但给我错误。所以工作解决方案是api.domain.com/api/v1/xxx但它太丑了,我需要删除第二个/api/url 参数。我该怎么办?PS:将子域映射到public_html/api,但显然会因错误 500 而崩溃。我的想法告诉我,解决方案可能在 .htaccess 文件中,但 In 不太了解它。
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您可以api通过prefix('api')从mapApiRoutes()RouteServiceProvider 中的方法中删除来删除默认前缀,如下所示:


App\Providers\RouteServiceProvider.php


protected function mapApiRoutes()

{

    // prefix('api) has been deleted


    Route::middleware('api')

         ->namespace($this->namespace)

         ->group(base_path('routes/api.php'));

}

至于 api 子域,我会把它放在主域之上。那么你就不必担心它指向的目录。


查看完整回答
反对 回复 2021-11-26
?
当年话下

TA贡献1890条经验 获得超9个赞

在 apache 中使用 .htaccess,你可以添加这个。


    RewriteCond %{HTTP_HOST} ^api.(bachecubano.com)$

    RewriteRule ^/?(.*)$ https://%1/api/$1 [L,R]

它在内部将 api 子域上的任何调用重定向到域/api。


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信