گیک فارسی

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

اختصاص Subdomain به کاربران (مانند وبلاگ ها) و تشخیص کاربر از طریق URL

2 دیدگاه‌ها

یکی از سؤالاتی که خیلی اینطرف و اونطرف بهش بر خوردم این قابلیتی هست که وبلاگ ها و برخی سرویس های اینترنتی به کاربران می‌دهند و کاربر میتونه از طریف مثلاً آدرس user.domain.com به صفحه یا بخش مربوط به خودش دسترسی پیدا کنه.

نکته اصلی این هست که اکثر دوستان یا دسترسی به سرویس دهنده ندارن (در واقع سرویس VPS یا Dedicated ندارن) یا اینکه کلاً با تنظیمات Apache و سرور های دیگه ای آشنایی ندارن. راستش برای راه اندازی چنین سرویسی اصلاً نیاز به سرویس دهنده اختصاصی نیست و روی سرویس های اشتراکی و Cpanel به راحتی میشه پیادش کرد.

برای این کار کافیه توی cpanel به بخش Domains > Subdomains برین و Subdomain ی به اصطلاح Wildcard بسازین که میشه domain.com.* و مسیر را هم پوشه Root وب سایت که عموما /public_html هست قرار بدین، حالا باید به قسمت Domains > Simple DNS Zone Editor برین و یک رکورد از نوع A به صورت .domain.com.* با آدرس IP سرورتون ایجاد کنید.

برخی مواقع باید کمی بهش وقت بدین تا DNS درست کار کنه و هر Subdomain ی را فراخونی کنید سایت اصلی باز بشه. بعد از اطمینان از این موضوع حالا کافیه ببینیم چه Subdomain ی فراخونی شده و بر اساس اون ص مورد نظر را به کاربر نشون بدیم ، هم از طریق htaccess. میشه و هم PHP که به نظر من توی این سناریو ها نسخه PHP کار را حل میکنه :

$user_name = array_shift((explode(".",$_SERVER['HTTP_HOST'])));

دوستانی که ترجیح میدن با htaccess. کار را یکسره کنن :

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$
RewriteRule (.*) /$1 [L]


برچسب‌ها:

  1. فرهاد اکبری گفت:

    سلام.
    داداش اینی که گفتی رو انجام دادم. اون کد رو هم گذاشتم تو htaccess
    ولی هرچی پوشه درست میکنم میره تو صفحه اصلی سایت
    به پوشه ساب دامین نمیره

    1. یونیک مدیر گفت:

      روش اول را امتحان کردی ؟
      میتونی توی فایل index که روی home گذاشتی چک کنی ببینی اگه subdomain هست redirect ش کنی. یعنی اگه www نبود و اون نام کاربری موجود بود redirect کنی به صفحه شخص.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *