Laravel 5.8 menggunakan subdomain sebagai titik akhir API di samping domain.com/api
Saya memiliki server produksi dengan beberapa titik akhir API. Saya hanya ingin membuat sistem yang lebih cantik yang memindahkan semua panggilan API dari domain.com/api/v1/xxxxxx
ke subdomain sepertiapi.domain.com/v1/xxxxxx
Sekarang saya baru saja membuat subdomain di cPanel: api.domain.com lalu arahkan subdomain itu ke public_html
folder laravel (saya melakukan trik untuk public -> public_html
mengganti nama 😁)
Kemudian tambahkan domain pemetaan rute di 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');
});
});
Dan coba api.domain.com/v1/xxx
tapi beri saya kesalahan. Jadi solusi yang berhasil adalahapi.domain.com/api/v1/xxx
Tapi itu terlalu jelek, saya perlu menghapus /api/
parameter url kedua .
Bagaimana saya melakukan ini?
PS: Masukkan pemetaan subdomain ke public_html/api
, tapi itu jelas macet dengan kesalahan 500.
Pikiran saya mengatakan kepada saya bahwa solusinya mungkin dalam file .htaccess, tetapi In tidak tahu banyak tentang itu.
Terima kasih
Jawaban
Anda dapat menghapus api
awalan default dengan menghapus prefix('api')
dari mapApiRoutes()
metode di RouteServiceProvider Anda, seperti di bawah ini:
App \ Providers \ RouteServiceProvider.php
protected function mapApiRoutes()
{
// prefix('api) has been deleted
Route::middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
Sedangkan untuk subdomain api, saya hanya akan memarkirnya di atas domain utama. Maka Anda tidak perlu khawatir tentang direktori mana yang dituju.