forward دامنه و subdomain در پنل خود

فوروارد دامنه یعنی هر کسی که یک دامنه یا زیردامنه را باز می‌کند، به‌جای دیدن محتوا روی همان نشانی، به نشانی دیگری فرستاده شود. این کار در عمل با یک ریدایرکت HTTP انجام می‌شود، نه با رکورد DNS و نه با فایل index دست‌ساز؛ و درست‌ترین شکلش برای یک انتقال دائمی، ریدایرکت 301 روی کنترل‌پنل هاست یا وب‌سرور است.

فوروارد در کدام لایه اتفاق می‌افتد

وقتی کاربری نشانی شما را در مرورگر می‌زند سه اتفاق پشت سر هم رخ می‌دهد: اول DNS نام دامنه را به یک آدرس IP ترجمه می‌کند، بعد مرورگر به آن آی‌پی وصل می‌شود، و در آخر یک درخواست HTTP می‌فرستد. فوروارد در همین مرحله سوم اتفاق می‌افتد: وب‌سرور به‌جای صفحه، کد وضعیت 301 یا 302 به‌همراه هدر Location برمی‌گرداند و مرورگر خودش به نشانی جدید می‌رود.

نتیجه عملی این جمله مهم است: تا وقتی دامنه مبدأ به سروری اشاره نکند که حاضر باشد جواب بدهد، هیچ فورواردی ممکن نیست. یعنی حتی برای فوروارد کردن یک دامنه پارک‌شده هم اول باید رکورد A یا CNAME آن را به یک میزبان وصل کنید. اگر جایی سرویسی به نام «فوروارد دامنه» دیدید که انگار بدون هاست کار می‌کند، پشت پرده دقیقاً همین اتفاق می‌افتد: دامنه به سرور ریدایرکت خودِ آن سرویس‌دهنده اشاره داده می‌شود و آن سرور است که پاسخ 301 را می‌فرستد.

فوروارد، رکورد DNS و ریدایرکت ۳۰۱ سه چیز متفاوت‌اند

این سه اصطلاح مدام جای هم به کار می‌روند و همین سرچشمه بیشتر اشتباه‌هاست. رکورد DNS فقط می‌گوید یک نام به کدام آی‌پی یا کدام نام دیگر می‌رسد؛ هیچ رکورد استانداردی در DNS وجود ندارد که بتواند نشانی داخل نوار آدرس مرورگر را عوض کند. در میزبانی DNS اختصاصی هم مانند هر زون استاندارد دیگری رکوردهای A، AAAA، CNAME، MX و TXT در اختیار شماست و هیچ‌کدام‌شان ریدایرکت نیستند.

ابزار چه می‌کند نشانی در مرورگر کجا درست است
A / AAAA نام را به آی‌پی وصل می‌کند عوض نمی‌شود بالا آوردن سایت روی همان دامنه
CNAME نام را به نام دیگری ارجاع می‌دهد عوض نمی‌شود زیردامنه‌ای که باید از میزبان دیگری سرو شود
ریدایرکت 301 / 308 پاسخ HTTP «دائمی منتقل شد» عوض می‌شود انتقال دائمی دامنه، یکسان‌سازی www
ریدایرکت 302 / 307 پاسخ HTTP موقت عوض می‌شود کمپین کوتاه‌مدت، صفحه در دست تعمیر
فوروارد ماسک‌دار محتوای مقصد را داخل فریم نشان می‌دهد عوض نمی‌شود تقریباً هیچ‌وقت

درباره کدهای دائمی یک نکته را بدانید: مستندات گوگل هر دو کد 301 و 308 را ریدایرکت دائمی سمت سرور می‌شناسد. تفاوت‌شان در رفتار با متد درخواست است؛ 308 متد اصلی را حفظ می‌کند و مثلاً یک POST را دوباره POST می‌فرستد، در حالی که 301 ممکن است آن را به GET تبدیل کند. برای یک سایت معمولی که مقصدش صفحه‌های عادی است، 301 همان چیزی است که می‌خواهید و پشتیبانی گسترده‌تری هم دارد؛ 308 بیشتر به درد مسیرهای API و فرم‌ها می‌خورد.

ماسک‌دار یا بدون ماسک، و چرا ماسک انتخاب بدی است

فوروارد بدون ماسک همان ریدایرکت واقعی است: کاربر می‌رود روی نشانی مقصد و نوار آدرس هم همان را نشان می‌دهد. فوروارد ماسک‌دار (که گاهی «فوروارد با فریم» نامیده می‌شود) کار دیگری می‌کند؛ سایت مقصد را داخل یک فریم بارگذاری می‌کند تا کاربر همچنان دامنه قبلی را ببیند. جذاب به نظر می‌رسد، اما هزینه‌اش را هر دو دامنه می‌پردازند:

  • موتور جستجو صفحه‌ای را می‌بیند که فقط یک فریم است و متن یکتای خودش را ندارد؛ چیزی برای ایندکس کردن باقی نمی‌ماند.
  • کل سایت پشت یک نشانی ثابت جمع می‌شود؛ کاربر نمی‌تواند به صفحه داخلی لینک بدهد، پس بک‌لینکی هم به صفحه‌های واقعی شما نمی‌رسد.
  • عنوان، توضیحات متا و تگ canonical متعلق به صفحه فریم‌کننده است، نه محتوایی که کاربر می‌بیند.
  • بسیاری از سایت‌ها هدر X-Frame-Options یا سیاست frame-ancestors می‌فرستند و مرورگر اصلاً اجازه بارگذاری در فریم را نمی‌دهد؛ نتیجه یک صفحه سفید است.

اگر دامنه دومی را فقط برای محافظت از برند یا پوشش غلط‌های تایپی ثبت کرده‌اید — تعرفه‌ها در صفحه ثبت دامنه آمده است — بهترین کار این است که آن را بدون ماسک و با 301 به دامنه اصلی بفرستید. این‌طور اعتبار لینک‌ها به دامنه اصلی می‌رسد و فقط یک نسخه از سایت شما در ایندکس می‌ماند.

کدام روش برای کدام موقعیت

  • دامنه‌های حفاظتی و مشابه: ریدایرکت 301 بدون ماسک به دامنه اصلی.
  • تغییر دائمی دامنه: ریدایرکت 301 برای کل دامنه، اما مسیر به مسیر؛ یعنی هر نشانی قدیمی به معادل خودش برود.
  • یکسان‌سازی www و بدون www: یکی را انتخاب و دیگری را با 301 به آن هدایت کنید.
  • زیردامنه‌ای که بازنشسته شده: مثلاً وقتی محتوای blog.example.com به example.com/blog منتقل شده، ریدایرکت 301 پاسخ درست است.
  • کمپین یا صفحه موقت: 302 بگذارید تا نشانی قدیمی از ایندکس حذف نشود.
  • زیردامنه‌ای که محتوای مستقل خودش را دارد: اینجا اصلاً فوروارد لازم نیست؛ یک رکورد A یا CNAME و یک سایت واقعی بسازید.

راه‌اندازی در عمل

فوروارد را در سطح سرویس میزبانی وب تنظیم می‌کنید، چون همان‌جاست که وب‌سرور به درخواست پاسخ می‌دهد. پیش‌نیاز مشترک همه روش‌ها یکی است: دامنه یا زیردامنه مبدأ باید قبلاً به همان هاست وصل و در آن تعریف شده باشد.

سی‌پنل

در بخش Domains گزینه Redirects را باز کنید، نوع را روی Permanent (301) بگذارید، دامنه مبدأ را انتخاب کنید و نشانی کامل مقصد را با https:// وارد کنید. تیک Wild Card Redirect را بزنید تا مسیر درخواست‌شده هم به مقصد منتقل شود و همه صفحه‌ها روی صفحه اصلی نریزند.

دایرکت‌ادمین

دایرکت‌ادمین در ایران کاربر کم ندارد، چون برخلاف سی‌پنل درگیر محدودیت‌های تحریمی نیست و با لایسنس دایرکت‌ادمین روی سرورهای لینوکسی فعال می‌شود. در پوسته Evolution از منوی Account Manager وارد Site Redirection شوید و یک ریدایرکت تازه بسازید. سه چیز از شما می‌خواهد: مسیر محلی که اگر خالی بماند کل دامنه را پوشش می‌دهد، نشانی مقصد، و نوع ریدایرکت که برای انتقال دائمی باید 301 باشد نه 302.

پلسک

در مسیر Websites & Domains و سپس Hosting Settings، نوع میزبانی را روی Forwarding بگذارید. پلسک دو حالت پیشنهاد می‌کند: Standard forwarding که ریدایرکت واقعی است و Frame forwarding که همان ماسک است. حالت استاندارد را انتخاب کنید.

مستقیم روی وب‌سرور

روی آپاچی و لایت‌اسپید، در فایل .htaccess ریشه دامنه مبدأ:

  • RewriteEngine On
  • RewriteCond %{HTTP_HOST} ^old\.example\.com$ [NC]
  • RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

روی انجین‌ایکس، یک بلوک server جدا برای دامنه مبدأ بسازید. این بلوک به سه چیز نیاز دارد: یک listen، یک server_name که فقط دامنه مبدأ را می‌گیرد، و خط ریدایرکت:

  • listen 443 ssl;
  • server_name old.example.com;
  • return 301 https://example.com$request_uri;

گواهی SSL دامنه مبدأ را هم در همین بلوک معرفی کنید و بلوک جداگانه‌ای روی listen 80; بگذارید تا درخواست‌های بدون https هم به همان مقصد بروند. اگر server_name را ننویسید، این بلوک ممکن است پیش‌فرض سرور شود و بقیه سایت‌های همان ماشین را هم ریدایرکت کند.

روش قدیمی meta refresh را کنار بگذارید

نسخه قدیمی این آموزش پیشنهاد می‌کرد یک فایل index.html بسازید و داخلش <meta http-equiv="refresh" content="5;url=..."> بگذارید تا صفحه بعد از چند ثانیه به مقصد برود. امروز این روش را به کار نبرید. ریدایرکت HTTP نیست؛ مرورگر اول یک صفحه کامل می‌گیرد و بعد می‌پرد، و تأخیری که کاربر نمی‌تواند متوقفش کند یک ایراد دسترس‌پذیری شناخته‌شده است. ضمناً فقط برای همان مسیری کار می‌کند که فایل در آن نشسته، بقیه نشانی را حفظ نمی‌کند و نشانی قدیمی در تاریخچه مرورگر می‌ماند و دکمه بازگشت کاربر را به همان حلقه برمی‌گرداند. یک ریدایرکت 301 واقعی هیچ‌کدام از این مشکل‌ها را ندارد.

چطور مطمئن شویم درست کار می‌کند

ساده‌ترین آزمون، دیدن هدرهای پاسخ است: curl -I https://old.example.com. در خروجی باید کد 301 و یک هدر Location با نشانی مقصد ببینید. برای دیدن کل زنجیره از curl -sIL https://old.example.com استفاده کنید.

دو نکته را همان‌جا بررسی کنید. اول اینکه زنجیره کوتاه بماند؛ مسیر http به https به www و بعد به مقصد، یعنی سه پرش که هم کند است و هم بی‌دلیل بودجه خزش را مصرف می‌کند. دوم اینکه دامنه مبدأ هم به گواهی SSL معتبر نیاز دارد، چون مرورگر پیش از دیدن ریدایرکت باید ارتباط امن را برقرار کند؛ بدون گواهی، کاربر اول یک هشدار امنیتی می‌بیند.

اگر کاری که می‌کنید جابه‌جایی کل سایت به یک دامنه تازه است، بعد از برقرار شدن ریدایرکت‌ها سراغ ابزار «تغییر نشانی» یا Change of Address در سرچ کنسول گوگل بروید. این ابزار فقط برای انتقال کامل یک دامنه به دامنه دیگر ساخته شده و هر دو دامنه باید در سرچ کنسول تأیید مالکیت شده باشند؛ برای جابه‌جایی چند صفحه یا تغییر ساختار نشانی‌ها درون همان دامنه کاربردی ندارد. در کنارش، لینک‌های داخلی، تگ canonical و نشانی‌های داخل نقشه سایت را هم به نسخه جدید به‌روز کنید تا خزنده مجبور نباشد برای رسیدن به هر صفحه یک پرش اضافه بردارد.

اشتباه‌های رایجی که وقت می‌گیرند

  • فرستادن همه صفحه‌ها به صفحه اصلی مقصد. موتور جستجو این را «خطای نرم» می‌بیند و رتبه صفحه‌های قدیمی از بین می‌رود. هر مسیر را به معادل واقعی‌اش نگاشت کنید.
  • حلقه ریدایرکت. اگر مبدأ به مقصد و مقصد دوباره به مبدأ برگردد، مرورگر با خطای تعداد زیاد ریدایرکت متوقف می‌شود. با curl -sIL زنجیره را ببینید.
  • استفاده از ۳۰۲ برای انتقال دائمی. کد موقت به موتور جستجو می‌گوید نشانی قدیمی را نگه دار.
  • انتظار اینکه ایمیل هم فوروارد شود. فوروارد فقط روی HTTP اثر دارد؛ مسیر ایمیل دامنه را رکوردهای MX تعیین می‌کنند و باید جداگانه تنظیم شوند.
  • حذف زودهنگام دامنه قدیمی. مستندات رسمی گوگل درباره جابه‌جایی سایت توصیه می‌کند ریدایرکت‌ها را دست‌کم یک سال نگه دارید تا سیگنال‌ها به نشانی تازه منتقل شوند؛ و تا وقتی لینک‌های بیرونی هنوز به نشانی قبلی اشاره می‌کنند، آن دامنه باید ثبت و فعال بماند.

جمع‌بندی ساده است: فوروارد یک پاسخ HTTP است، پس در همان جایی تنظیم می‌شود که سایت شما سرو می‌شود — مثلاً کنترل‌پنل سی‌پنل روی هاست لینوکس ایران. برای انتقال دائمی از 301 بدون ماسک استفاده کنید، مسیرها را حفظ کنید و بعد از تنظیم، خروجی هدرها را یک بار خودتان ببینید.