رفتن به محتوای اصلی
iserver24 | ارائه‌کننده سرورهای ابری و اختصاصی
ریدایرکت 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، ولی تأثیرش روی سئو خیلی بیشتر از چیزی است که بیشتر سایت‌ها می‌فهمند.

    ریدایرکت www به بدون www در Apache روی CentOS 7 | زیرساخت ابری iServer24 | iserver24