اغلب اوقات پیش میآید که ما به مدیریت سابدامینهای خود در اپلیکیشن لاراولمان نیاز پیدا میکنیم. بیایید دقیقتر بررسی کنیم به نظر شما ما چطور میتوانیم کاری کنیم که روتها به صورت داینامیک رفتار کنند و ساب دامینها را با استفاده از valet و forge راه اندازی کنیم؟
تعریف سابدامین در روت
بر اساس مستندات لاراول ما میتوانیم به سادگی سابدامینها را در فایل روتمان راه اندازی کنیم. ما میتوانیم از یک سابدامین استاتیک استفاده کنیم و یا میتوانیم از wildcard ها در سابدامینهای خود استفاده کنیم.
// Static subdomain
Route::domain('app.yourapp.com')->group(function ($router) {
//
});
// Wildcard subdomain
Route::domain('{user}.yourapp.com')->group(function ($router) {
//
});
همان طور که دیدید ما میتوانیم مانند یک مورد عادی یک پارامتر برای روت داشته باشیم مثلا برای اتصال route-model از آن استفاده کنیم ، همچنین در بعضی موارد دیگر می توانیم فقط از سابدامینهای استاتیک استفاده کنیم برای مثال وقتی که میخواهیم یک قسمت از اپلیکیشنمان را از بقیه برنامه جدا کنیم.
سابدامینهای داینامیک(پویا) تولید کنید
قراردادن سابدامینها در فایل روت کدنویسی سخت و طولانی دارد و وقتی که ما از دامینهای مختلف در محیط لوکال استفاده میکنیم این کار دشوارتر است ، بنابراین روش قبلی راه حل مناسبی به نظر نمیرسد. در روش دیگر دامین فعلی خودمان را در متغیر App_URL در فایل .env تنظیم میکنیم و با استفاده از آن میتوانیم سابدامینهای وابسته به محیط و شرایط تولید کنیم ;بدون هیچگونه کدنویسی مشکل
APP_URL=https://pinecode.test
$domain = '{user}.' . parse_url(config('app.url'), PHP_URL_HOST);
Route::domain($domain)->group(...);
حالا میتوانیم App_URL را به هر چیز دیگری تغییر دهیم و همچنین میتوانیم سابدامین ثابت و یا پارامترهای wildcard را ضمیمه کنیم.
سابدامینهای فیک در valet
از آنجا که ساختار valet بر اساس پوشهبندی است ، ما به سادگی میتوانیم لینکهای نمادین(فیک) برای پوشههای اپلیکیشنمان ایجاد کنیم . وقتی به سابدامین رسیدیم ، valet لینکهای نمادین را لود خواهدکرد و به سادگی میتوانیم لینکهای نمادین را ایجاد کنیم.
ln -s example app.example
استفاده از wildcardها به همراه valet روش مناسبی به نظر نمیرسد ، اما ما میتوانیم برای درک مفهوم اولیه wildcard چندین لینک نمادین را برای تست و آزمایش ایجاد کنیم.
تنظیم سابدامینها در forge
نکته:قبل از هر چیزی شما باید اطمینان حاصل کنید که تنظیمات DNS مناسب را در ارائه دهنده DNS خود دارید.
اگر شما می خواهید که به طور کامل wildcard خودتان را مدیریت کنید تنها کاری که باید انجام بدهید تیک " Allow wildcard sub-Domains" را بزنید و سپس به شروع به تولید سایت خود کنید.
اما در صورتی که میخواهید که wildcardها را برای یک سایت از قبل موجود تنظیم کنید و یا فقط یک سابدامین اضافه کنید ، شما نیاز دارید که فایل کانفیگ Nginx را تغییر دهید. برای این کار سایتی را که میخواهید ویرایش کنید انتخاب کنید و بر روی منوی
Configuration File > EditNgin
کلیک کنید و سپس به خط هفتم جایی که دامنهها تعریف شدهاند بروید. برای ایجاد دسترسی برای wildcard subdomains فقط کافی است به دامنه خود یک " . " اضافه کنید مانند:
# Before
server_name example.com;
# After
server_name .example.com;
همچنین اگر شما می خواهید که یک سابدامین در کنار دامنه اصلی خود تعریف کنید ، تنها کافی است که آن را در کنار دامنه موجود قرار دهید مانند:
# Before
server_name example.com;
# After
server_name example.com app.example.com;
پس از اینکه شما این تنظیمات را ذخیره کردید و در صورتی که تنظیمات DNS شما مشکلی نداشته باشد ، سابدامین شما باید کار کند . اگر شما تنظیمات ssl در forge خود دارید ، فراموش نکنید که برای سابدامین خود یک مورد جدید ایجاد کنید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید