گیک فارسی

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

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

نویسنده:
24 دسامبر 15

یکی از سؤالاتی که خیلی اینطرف و اونطرف بهش بر خوردم این قابلیتی هست که وبلاگ ها و برخی سرویس های اینترنتی به کاربران می‌دهند و کاربر میتونه از طریف مثلاً آدرس 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]