![](/img/trans.png)
[英]How to host Laravel 5.8 Application in my domain (domain.com)?
[英]Laravel 5.8 use subdomain as API endpoint beside domain.com/api
我有一個帶有一些 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 Mapping
Route::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 文件中,但對它了解不多。
謝謝
您可以通過從mapApiRoutes()
方法中刪除prefix('api')
來刪除默認的api
前綴,如下所示:
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 子域,我會把它放在主域之上。 然后你不必擔心它指向的目錄。
在 apache 中使用 .htaccess,你可以添加這個。
RewriteCond %{HTTP_HOST} ^api.(bachecubano.com)$
RewriteRule ^/?(.*)$ https://%1/api/$1 [L,R]
它在內部將 api 子域上的任何調用重定向到域/api。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.