اضافه کردن ساب‌دامین در لاراول

گردآوری و تالیف : رضا جمال زاده
تاریخ انتشار : 12 شهریور 1398
دسته بندی ها : لاراول

اغلب اوقات پیش می‌آید که ما به مدیریت ساب‌دامین‌های خود در اپلیکیشن لاراولمان نیاز پیدا میکنیم. بیایید دقیق‌تر بررسی کنیم به نظر شما ما چطور میتوانیم کاری کنیم که روت‌ها به صورت داینامیک رفتار کنند و ساب دامین‌ها را با استفاده از 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 خود دارید ، فراموش نکنید که برای سابدامین خود یک مورد جدید ایجاد کنید.

منبع

مقالات پیشنهادی

  • دیباگ‌کردن در لاراول

    شاید خیلی از واقعیت دور نباشد اگر بگوییم که زمان دیباگ‌کردن در لاراول به انداز‌ی زمان برنامه‌ریزی و کد‌نویسی برای یک برنامه در لاراول باشد‌،‌ بنابراین...

    رضا جمال زاده
  • تکرار کردن یک سطر در لاراول

    امروز میخواهم در مورد ویژگی در لاراول صحبت کنم که به اصطلاح "hidden" است ، یعنی این قابلیت در سیستم لاراول وجود دارد اما در documentation لاراول چیزی...

    حسام موسوی
  • عملیات آرشیو کردن فایل ها در لاراول

    در این مقاله میخواهیم نحوه ی کار کردن با فایل های Zip در فریمورک لاراول رو آموزش بدیم. برای اینکار از یک پکیج به نام zipper استفاده می کنیم. این یک پک...

    امیررضا سیستانه ای