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

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

بهینه سازی و کارایی
3 دقیقه مطالعه

خیلی از سایت‌ها هم با 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
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

4 خط
<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
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

2 خط
HTTP/1.1 301 Moved Permanently
Location: http://example.com/
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

چرا 301 مهم است؟

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


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

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

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

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

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


جمع‌بندی

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

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

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

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

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

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

زیرساخت ابری برای اجرای همین آموزش

سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

ادامه یادگیری:Docker·Ubuntu·VPS