我有一个带有一些 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 子域,我会把它放在主域之上。那么你就不必担心它指向的目录。
当年话下
TA贡献1890条经验 获得超9个赞
在 apache 中使用 .htaccess,你可以添加这个。
RewriteCond %{HTTP_HOST} ^api.(bachecubano.com)$
RewriteRule ^/?(.*)$ https://%1/api/$1 [L,R]
它在内部将 api 子域上的任何调用重定向到域/api。
- 2 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消