آنچه در این مقاله میخوانید
نحوه ریدایرکت آدرس www به دامنه ریشه با Apache در اوبونتو 24.02
۵ اردیبهشت ۱۴۰۴
حتما تا بهحال مشاهده کردهاید که چرا هنگام وارد کردن آدرس وبسایت خود با یا بدون www به نتایج یکسانی میرسید؟ این موضوع بهدلیل نحوه پیکربندی دامنهها و هدایت صحیح ترافیک به دامنه اصلی است. در واقع زمانی که وبسایت شما روی یک دامنه راهاندازی میشود، کارشناسان سئو و وبمسترها توصیه میکنند که دسترسی کاربران به سایت از طریق دامنه بدون www و همچنین زیر دامنه www امکانپذیر بوده و محتوای یکسانی مشاهده کنند.
اگرچه روشهای مختلفی برای اینکار وجود دارد، اما بهترین راه برای برای بهینهسازی تجربه کاربری و سئو این است که دامنه مورد نظر خود (اصلی) را انتخاب کرده و دامنه های دیگر را به این دامنه ترجیحی هدایت کنید. این فرایند را میتوانید با استفاده از ریدایرکت دائمی یا ریدایرکت301 انجام دهید. ریدایرکت 301 روشی استاندارد برای انتقال دائمی ترافیک از یک URL به URL دیگر است و به موتورهای جستجو اطلاع میدهد که URL قبلی بهطور دائم به آدرس جدید هدایت شده است. این کار نه تنها کمک میکند تا اعتبار SEO شما حفظ شود، بلکه از بروز محتوای تکراری (Duplicate Content) نیز جلوگیری میکند.
در این آموزش از لیارا، نحوه ریدایرکت از URL با www به URL بدون www با استفاده از وبسرور آپاچی در اوبونتو را توضیح خواهیم داد. تا پایان مقاله همراه ما باشید.

در ادامه بخوانید:
- پیشنیازها
- تنظیم رکوردهای DNS دامنه
- فعالکردن ماژول mod-rewrite در آپاچی
- فعال کردن امکان استفاده از فایل .htaccess در آپاچی
- تنظیم ماژول mod-rewrite
- جمعبندی
- سوالات متداول
پیشنیازها
برای یادگیری بهتر این آموزش، شما به موارد زیر نیاز خواهید داشت:
- یک سرور مجازی Ubuntu که با دنبال کردن آموزش راهاندازی اولیه سرور برای Ubuntu، راهاندازی شده و شامل یک کاربر غیر root با دسترسی sudo و یک فایروال فعال است؛ برای این کار، میتوانید از سرور مجازی لیارا، استفاده کنید.
- نصب Apache با دنبال کردن آموزش نحوه نصب وب سرور آپاچی Apache روی سرور مجازی.
- تنظیم دو رکورد DNS زیر برای سرور خود. اگر از سامانه مدیریت دامنه لیارا، استفاده میکنید، لطفاً به مستندات DNS آن، مراجعه کنید تا جزئیات مربوط به شیوهی اضافه کردن رکوردها را ببینید.
- یک رکورد A که
example.com
را به آدرس IP عمومی سرور شما ارجاع دهد. - یک رکورد A که www.example.com را به آدرس IP عمومی سرور شما ارجاع دهد.
- یک رکورد A که
حالا نوبت به اولین قدم میرسد؛ یعنی تنظیم رکوردهای DNS دامنه.
مرحله اول: تنظیم رکوردهای DNS دامنه
در آغاز کار برای اینکه بتوانید ریدایرکت مورد نظرتان را بین آدرسهای www.example.com و example.com انجام دهید، لازم است که برای هر کدام از این دامنهها، یک رکورد A داخل DNS داشته باشید.
ابتدا وارد پنلی شوید که از طریق آن دامنهتان را مدیریت میکنید:
گام اول: ساخت رکورد برای دامنه اصلی (example.com)
اگر قبلا رکوردی برای دامنه اصلی ایجاد نکردهاید، اکنون آنرا ایجاد کنید.
- بجای Hostname وارد کنید: example.com
- بجای IP Address: آدرس IP سرور Apache خودتان را وارد کنید.
با این کار، یک رکورد A ساخته میشود که دامنه example.com را به IP سرور شما متصل میکند.
گام دوم: ساخت رکورد برای www
حالا باید یک رکورد A دیگر برای نسخه www دامنه بسازید:
- بجای Hostname، وارد کنید: www
- بجای IP Address: باز هم همان IP سرور Apache را وارد کنید.
در آخر بعد از ساخت این دو رکورد، لیست رکوردهای DNS شما باید چیزی شبیه به شکل زیر باشد:

حالا سرور شما باید از طریق دامنه با www و بدون www قابل دسترسی باشد، اما هنوز نیاز داریم که ریدایرکت را تنظیم کنیم. در مرحله بعدی، این کار را انجام خواهیم داد.
با ثبتنام در لیارا، ۱۰۰ هزار تومان اعتبار هدیه بگیرید و از سرور مجازی رایگان با کیفیت بالا و امکانات عالی استفاده کنید!
پشتیبانی ۲۴ ساعته برای کاربران سرور مجازی رایگان!
خرید سرور مجازی رایگان
مرحله دوم: فعالکردن ماژول mod-rewrite در آپاچی
حالا برای انجام ریدایرکت 301 و هدایت کاربران از آدرس www.example.com به example.com یا برعکس، باید ماژول mod_rewrite در آپاچی را فعال کنید. با این کار هر کاربری که وارد سایت شما میشود بهصورت خودکار به دامنه مورد نظر شما هدایت شود.
برای اینکار ماژول mod_rewrite را با دستور زیر فعال کنید:
sudo a2enmod rewrite
اکنون میتوانید Apache را با استفاده از فایلهای .htaccess
پیکربندی کنید.
مرحله سوم: فعالسازی فایلهای htaccess. در آپاچی
در این مرحله، فایل پیکربندی Apache که در مسیر /etc/apache2/sites-enabled/000-default.conf
قرار دارد، را باید ویرایش کنید:
sudo vi /etc/apache2/sites-enabled/000-default.conf
ابتدا باید مسیر DocumentRoot سایت خود را پیدا کرده و آن را یادداشت کنید. به طور پیشفرض، این مسیر در /var/www/html
است، بنابراین در این مثال از همین مسیر استفاده خواهیم کرد.
سپس برای اعمال تنظیمات صحیح، باید دستور Directory زیرا به فایل پیکربندی Apache اضافه کنید. توجه داشته باشید که در این قسمت، باید مسیر DocumentRoot را که قبلا یادداشت کردهاید، را در بخش هایلایت شده قرار دهید:
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
در آخر، فایل را ذخیره کرده و از ویرایشگر خارج شوید.
حالا سرویس Apache را با دستور زیر ریاستارت کنید:
sudo service apache2 restart
پس از راهاندازی مجدد، اکنون آپاچی به طور صحیح پیکربندی شده است تا فایلهای .htaccess
را در تمام زیرشاخههای دایرکتوری /var/www/html
اجر کند.
در مرحله آخر وقت آن رسیده است که قوانین rewrite را به فایل .htaccess
اضافه کنیم.
همچنین بخوانید: نحوه نصب انجین ایکس، MySQL و پی اچ پی (LEMP) بر روی سرور مجازی لینوکس
مرحله چهارم: تنظیم ماژول mod-rewrite
همانطور که قبلا اشاره کردیم، میخواهیم ماژول rewrite را با فایل .htaccess
پیکربندی کنیم.
برای اینکار ابتدا باید به دایرکتوری اصلی سایت خود بروید:
cd /var/www/html
حالا فایل .htaccess
را برای ویرایش باز کنید:
sudo vi .htaccess
البته، اگر این فایل را ایجاد نکردهاید، بهطور پیشفرض خالی خواهد بود. بسته به اینکه میخواهید ترافیک را از کدام دامنه به دیگری هدایت کنید، یکی از دستورات زیر را در فایل قرار دهید.
حالت اول: ریدایرکت آدرس با www به آدرس بدون www
اگر قصد دارید کاربران را از آدرس با www به آدرس بدون www هدایت کنید، این پیکربندی را در فایل .htaccess
خود وارد کنید:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
تغییرات را ذخیره کرده و از ویرایش فایل خارج شوید. دقت داشته باشید که اگر از HTTPS استفاده میکنید، باید عبارت “http” در خط RewriteRule را به “https” تغییر دهید.
در نهایت برای اطمینان از اینکه آدرس بدون www به آدرس با www ریدایرکت میشود، از دستور curl بهصورت زیر استفاده کنید:
curl -I http://www.example.com
پس از اجرای این دستور باید بلافاصله پاسخ Moved Permanently را دریافت کنید. در خروجی مکان دایرکت آدرس بدون www را مشاهده خواهید کرد:
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 May 2015 21:18:33 GMT
Server: Apache/2.4.7 (Ubuntu)
Location: http://example.com/
Content-Type: text/html; charset=iso-8859-1
بهتر است دامنهتان را در یک مرورگر وب باز کنید (هم با www و هم بدون www) تا از مطمئن شوید ریدایرکتها بهدرستی کار میکنند:)
همچنین بخوانید: مقایسه وبسرور Apache و NGINX؛ کدام را انتخاب کنیم؟
حالت دوم: ریدایرکت آدرس بدون www به آدرس با www
اگر میخواهید کاربران را از آدرس بدون www به آدرس با www هدایت کنید، پیکربندی زیر را وارد کنید:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
تغییرات را ذخیره کرده و از ویرایشگر خارج شوید. دقت کنید که اگر از HTTPS استفاده میکنید، باید عبارت “http” را در خط RewriteRule به “https” تغییر دهید.
برای اینکه مطمئن شوید ریدایرکت آدرس بدون www به آدرس با www هدایت میشود، از دستور curl بهصورت زیر استفاده کنید:
curl -I http://example.com
در خروجی باید پاسخ 301 Moved Permanently دریافت کنید که محل ریدایرکت شدن آدرس با www را نشان دهد، بهصورت زیر:
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 May 2015 21:18:33 GMT
Server: Apache/2.4.7 (Ubuntu)
Location: http://www.example.com/
Content-Type: text/html; charset=iso-8859-1
و در آخر، برای اطمینان بیشتر، آدرس خود را هم با www و هم بدون www در مرورگر وب وارد کرده و بررسی کنید.
همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راهاندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه بهصرفه
خرید سرور مجازی ابری
جمعبندی
تبریک:) حالا ریدایرکت Apache شما به درستی پیکربندی شده و کاربران میتوانند به وبسایت شما از طریق آدرس با www یا بدون www دسترسی پیدا کنند. امیدواریم این آموزش برای شما مفید بوده باشد و به وسیله آن توانسته باشید ریدایرکت آدرس از www به بدون www آن را در فایل .htaccess انجام دهید.
سوالات متداول
آیا تنظیم ریدایرکتهای www به non-www و بالعکس بر سئو تاثیر میگذارد؟
بله، استفاده از ریدایرکتهای صحیح کمک میکند تا محتوای تکراری (duplicate content) جلوگیری شود و موتورهای جستجو تنها یک نسخه از سایت شما را ایندکس کنند، که این به نفع سئو است.
چرا باید از ریدایرکت 301 به جای ریدایرکت 302 استفاده کنم؟
ریدایرکت 301 به موتورهای جستجوگر اعلام میکند که تغییر دائمی است و اعتبار صفحه به آدرس جدید منتقل میشود. این در حالی است که ریدایرکت 302 برای تغییرات موقت مناسب است.
چه زمانی باید ریدایرکت از آدرس www به non-www یا بالعکس را انجام دهم؟
این کار زمانی لازم است که بخواهید ترافیک سایت خود را به یک دامنه خاص (با www یا بدون www) هدایت کنید. برای مثال، اگر میخواهید تمام کاربران به آدرس بدون www هدایت شوند یا برعکس، باید ریدایرکتها را برای جلوگیری از محتوای تکراری و بهینهسازی سئو تنظیم کنید.