رفتن به محتوای اصلی
دیدگاه کلود | ارائه‌کننده سرورهای ابری و اختصاصی
ریدایرکت www به بدون www در Apache روی CentOS 7

ریدایرکت www به بدون www در Apache روی CentOS 7

خیلی از سایت‌ها هم با www.example.com در دسترس هستند هم با example.com. اما از نظر سئو و ساختار استاندارد وب، بهتر است فقط یک نسخه به‌عنوان دامنه اصلی (Canonical Domain) انتخاب شود و نسخه دیگر به آن ریدایرکت 301 شود.

خیلی از سایت‌ها هم با www.example.com در دسترس هستند هم با example.com. اما از نظر سئو و ساختار استاندارد وب، بهتر است فقط یک نسخه به‌عنوان دامنه اصلی (Canonical Domain) انتخاب شود و نسخه دیگر به آن ریدایرکت 301 شود.

مثلاً اگر دامنه اصلی شما بدون www است، هر کاربری که وارد:

 
www.example.com

شود باید به صورت خودکار به:

 
example.com

منتقل شود.

این کار باعث می‌شود:

  • موتورهای جستجو دچار محتوای تکراری نشوند

  • اعتبار سئو روی یک دامنه متمرکز شود

  • ساختار سایت حرفه‌ای‌تر باشد

در این آموزش، این ریدایرکت را با Apache روی CentOS 7 انجام می‌دهیم.


پیش‌نیازها

قبل از شروع، مطمئن شوید:

  • Apache روی سرور نصب است

  • دسترسی sudo دارید

  • دامنه را ثبت کرده‌اید

  • DNS دامنه به IP سرور اشاره می‌کند


مرحله 1: تنظیم DNS

باید هر دو آدرس به سرور شما اشاره کنند.

رکورد اول (دامنه اصلی)

نوعمقدار
TypeA
Host@
ValueIP سرور

رکورد دوم (www)

نوعمقدار
TypeA
Hostwww
Valueهمان IP سرور

بعد از این مرحله، هر دو آدرس به Apache می‌رسند.


مرحله 2: فعال بودن mod_alias در Apache

برای ریدایرکت ساده، ما از mod_alias استفاده می‌کنیم.

بررسی فعال بودن ماژول:

 
httpd -M | grep alias_module

اگر چیزی برنگشت:

 
echo "LoadModule alias_module modules/mod_alias.so" | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf

مرحله 3: حذف www از VirtualHost اصلی

فایل کانفیگ سایت را باز کنید:

 
sudo nano /etc/httpd/conf/httpd.conf

اگر این خط وجود داشت:

 
ServerAlias www.example.com

آن را حذف کنید.
چون قرار است برای www یک VirtualHost جدا بسازیم.


مرحله 4: ساخت VirtualHost برای www

یک فایل جدید بسازید:

 
sudo nano /etc/httpd/conf.d/www.example.com.conf

داخلش این را بگذارید:

 
<VirtualHost *:80> ServerName www.example.com Redirect permanent / http://example.com/ </VirtualHost>

این دستور می‌گوید هر درخواستی برای www بیاید، با 301 به دامنه اصلی برود.


اگر HTTPS دارید

برای SSL هم باید همین کار را روی پورت 443 انجام دهید.


مرحله 5: ری‌استارت Apache

 
sudo systemctl restart httpd

مرحله 6: تست ریدایرکت

با curl تست بگیرید:

 
curl -IL http://www.example.com

باید خروجی شامل این باشد:

 
HTTP/1.1 301 Moved Permanently Location: http://example.com/

چرا 301 مهم است؟

کد 301 یعنی «انتقال دائمی». موتورهای جستجو می‌فهمند که نسخه اصلی سایت کدام است و رتبه سئو تقسیم نمی‌شود.


اشتباهات رایج

  • فعال بودن همزمان سایت روی www و non-www بدون ریدایرکت

  • استفاده از 302 به جای 301

  • باقی ماندن ServerAlias برای www

  • تنظیم نکردن DNS


جمع‌بندی

با این تنظیم ساده:

  • سایت فقط یک نسخه اصلی دارد

  • سئو بهبود پیدا می‌کند

  • از محتوای تکراری جلوگیری می‌شود

  • ساختار دامنه حرفه‌ای می‌شود

چهار خط تنظیم در Apache، ولی تأثیرش روی سئو خیلی بیشتر از چیزی است که بیشتر سایت‌ها می‌فهمند.