شاید برای شما هم پیش آمده باشد که آدرس یک صفحه از سایتتان را تغییر دادهاید یا بخشی از محتوا را به مسیر جدیدی منتقل کردهاید، اما هنوز کاربران و موتورهای جستجو آن را با لینک قدیمی میشناسند. اینجاست که مفهوم ریدایرکت وارد عمل میشود. ریدایرکتها کمک میکنند بازدیدکنندگان بدون خطای 404، مستقیم به آدرس جدید هدایت شوند و رتبههای سئو حفظ گردد. یکی از حرفهایترین و سریعترین روشها برای انجام این کار، استفاده از فایل .htaccess در هاستهای مبتنی بر Apache است.
با چند خط کد ساده در این فایل، میتوانید انواع ریدایرکت دائمی (301) یا موقت (302) را پیادهسازی کنید، مسیر صفحات را تغییر دهید، یا حتی کل دامنه را به آدرس تازه منتقل کنید. در این مقاله، قدمبهقدم نحوه ریدایرکت آدرس های سایت از طریق فایل htaccess. را بررسی میکنیم تا بتوانید بدون افت سئو، مسیرهای جدیدتان را برای کاربران و موتورهای جستجو بهینه نمایید.
ریدایرکت چیست و چه کاربردی دارد؟
ریدایرکت یا انتقال آدرس روشی است که به مرورگر و موتورهای جستجو میگوید یک صفحه وب از آدرس قدیمی به آدرس جدید منتقل شده است. مثلا فرض کنید قبلا صفحه "https://www.azaronline.com/products.html" داشتید و تصمیم گرفتهاید آن را به "https://www.azaronline.com/hosting" تغییر دهید.
اگر کاربر یا گوگل به آدرس قدیمی مراجعه کند، بدون اینکه خطای 404 ببیند، بهطور خودکار به آدرس جدید هدایت میشود. این کار با یک ریدایرکت دائمی (301) باعث میشود اعتبار و رتبه سئو صفحه قبلی حفظ شود و تمام بازدیدکنندگان مسیر درست را پیدا کنند؛ درحالیکه ریدایرکت موقت (302) فقط برای جابهجاییهای کوتاهمدت استفاده میشود.
کاربرد ریدایرکت چیست؟
کاربردهای اصلی ریدایرکت آدرس قدیمی به جدید با htaccess. عبارتند از:
- تغییر دائمی مسیر صفحات: هدایت کاربران و موتورهای جستجو از آدرس قدیمی به آدرس جدید.
- حفظ اعتبار و رتبه سئو: جلوگیری از افت رتبه صفحه هنگام تغییر URL
- جلوگیری از خطای 404: انتقال بازدیدکنندگان به صفحه معتبر بهجای نمایش خطا
- انتقال ترافیک بین دامنهها: جابهجایی سایت به دامنه جدید بدون از دست دادن بازدید
- مدیریت صفحات موقت یا کمپینها: استفاده از ریدایرکت 302 برای هدایت کوتاهمدت
- تلفیق یا ادغام صفحات مشابه: هدایت همه آدرسهای پراکنده به یک مقصد واحد
نقش ریدایرکت در سئو
ریدایرکت با فایل htaccess url به موتورهای جستجو و مرورگرها اعلام میکند که یک صفحه از آدرس قبلی به آدرس جدید منتقل شده است. زمانی که این کار با ریدایرکت دائمی (301) انجام میشود، در واقع ریدایرکت دامنه بدون تغییر در رتبه گوگل و به عبارت دیگر قدرت رتبهبندی و اعتبار لینکها Link Equity از URL قدیمی به URL جدید منتقل میگردد.
این انتقال باعث میشود که صفحه جدید بتواند جایگاه سئو قبلی را حفظ کند و کاربران بدون مواجهه با خطای 404 به مقصد صحیح هدایت شوند. همچنین ریدایرکت صحیح، بهخصوص برای مهاجرت دامنه یا تغییر ساختار سایت، از هدر رفت ترافیک و افت رتبه جلوگیری نموده و تجربه کاربری روانتری ایجاد میکند.
معرفی فایل htaccess و اهمیت آن در مدیریت سایت
فایل htaccess یکی از ابزارهای قدرتمند مدیریت وبسایت روی سرورهای Apache است که با چند خط کد ساده، میتواند رفتار و دسترسی بخشهای مختلف سایت را کنترل کند. استفاده صحیح از این فایل، امنیت و سرعت سایت را بهبود میبخشد و امکان اجرای قوانین پیشرفته مانند ریدایرکت، محدودیت دسترسی و بهینهسازی سئو را فراهم میکند.
htaccess چیست؟
htaccess چیست؟.htaccess یک فایل پیکربندی متنی ساده است که در سطح دایرکتوری روی وبسرورهایی مانند Apache قرار میگیرد و وظیفه کنترل و مدیریت دسترسیها، قوانین و تنظیمات آن دایرکتوری و زیرشاخههایش را بر عهده دارد. این فایل، میتواند بسیاری از تنظیمات پیشفرض سرور ازجمله مدیریت دسترسی به فهرستها، تعریف قوانین ریدایرکت، محدود کردن IP، فعال یا غیرفعال کردن ماژولها و غیره را برای یک مسیر خاص تغییر دهد یا لغو کند.
کاربردهای فایل htaccess
کاربردهای فایل htaccess عبارتند از:
- تعریف و مدیریت ریدایرکتها: اجرای ریدایرکت دائمی (301) یا موقت (302) برای تغییر مسیر صفحات و حفظ رتبه سئو
- محدود کردن دسترسی بر اساس IP: جلوگیری از دسترسی افراد یا رباتهای خاص به بخشهای سایت
- مدیریت لیست شاخصها: فعال یا غیرفعال کردن نمایش محتوای پوشهها در مرورگر
- تنظیم صفحه پیشفرض: مشخص کردن فایل بهعنوان صفحه اصلی در یک مسیر
- حفاظت با رمز عبور: ایجاد محدودیت ورود به بخشی از سایت با استفاده از فایل .htpasswd
- تغییر نسخه PHP: انتخاب نسخه دلخواه PHP برای یک مسیر یا دایرکتوری خاص
- فعال یا غیرفعال کردن ماژولهای Apache: مدیریت ماژولهایی مانند mod_rewrite برای استفاده از URL های زیبا و سفارشی
- مدیریت کش مرورگر: تعیین مدت ذخیره فایلها در کش مرورگر برای بهبود سرعت
- محدود کردن دسترسی به انواع فایل: جلوگیری از دانلود یا اجرا شدن فایلهای حساس
- تعیین قوانین امنیتی: مسدود کردن درخواستهای مشکوک، جلوگیری از هاتلینک تصاویر و مقابله با حملات ساده
- مدیریت فشردهسازی فایلها: فعالسازی Gzip برای کاهش حجم فایلهای ارسالشده به مرورگر
- ساخت URL های سفارشی: حذف پسوندها و بهبود خوانایی لینکها برای کاربران و موتورهای جستجو
آموزش ریدایرکت با htaccess (با کدهای آماده)
اگر میخواهید مسیرهای قدیمی سایت خود را به آدرسهای جدید منتقل کنید و در عین حال اعتبار سئو و تجربه کاربری را حفظ نمایید، ریدایرکت آدرس های سایت از طریق فایل htaccess. یکی از سریعترین و قدرتمندترین ابزارهای شماست. با استفاده از چند خط کد آماده در این فایل، میتوانید انواع ریدایرکت دائمی (301) یا موقت (302) را بدون تغییرات پیچیده در ساختار سایت پیادهسازی کنید.
ریدایرکت 301، انتقال دائمی لینک (Permanent Redirect)
ریدایرکت 301 در htaccess، بهترین روش ریدایرکت سایت برای انتقال دائمی یک آدرس قدیمی به آدرس جدید است. این کار، هم کاربران را به مکان درست هدایت میکند و هم اعتبار سئو آدرس قبلی را حفظ کرده و به لینک جدید منتقل مینماید. برای این کار باید مراحل زیر را دنبال کنید.
مرحله 1: ورود به هاست
- وارد پنل هاست خود شوید (مانند cPanel یا دایرکت ادمین)
- از بخش File Manager وارد پوشه اصلی سایت ( (public_html شوید.
مرحله 2: نمایش فایلهای مخفی
فایل .htaccess معمولا مخفی است. روی Settings از بخش بالا کلیک کرده و گزینه Show Hidden Files را فعال کنید.
مرحله 3: ویرایش فایل .htaccess
- روی فایل .htaccess کلیک راست کنید و گزینه Edit را بزنید.
- بهتر است قبل از ویرایش، یک نسخه بکاپ تهیه کنید.
مرحله 4: اضافه کردن کد ریدایرکت
برای انتقال دائمی یک صفحه کد زیر را وارد کنید. در این کد /old-page.html مسیر صفحه قدیمی است. لینک کامل بعد از آن آدرس جدیدی است که قرار است کاربر به آن هدایت شود.
مرحله 5: ذخیره و تست نهایی
تغییرات را ذخیره کنید. لینک قدیمی را در مرورگر وارد نمایید تا به آدرس جدید هدایت شوید. برای بررسی وضعیت ریدایرکت، میتوانید از ابزار آنلاین httpstatus.io استفاده کنید.
ریدایرکت 302، انتقال موقت لینک (Temporary Redirect)
ریدایرکت 302 با htaccess ، زمانی به کار میرود که بخواهید یک آدرس را به صورت موقت به مقصد دیگری منتقل کنید، مانند مواقعی که صفحه اصلی در حال بهروزرسانی است یا کمپین تبلیغاتی خاصی اجرا میشود. هرچند گوگل اعلام کرده که 301 و 302 را از نظر اهمیت مشابه میداند، اما تجربه و بررسیهای عملی نشان میدهد که ریدایرکت 301 با htaccess ارزش و اعتبار لینک را بهتر منتقل میکند و اثر مثبتتری بر رتبه در موتورهای جستجو و حفظ قدرت سئو دارد. درحالیکه 302 معمولا برای جابجاییهای موقت و کوتاهمدت مناسبتر است.
ریدایرکت 303
ریدایرکت 303 در DirectAdmin، یک روش هدایت موقت است که معمولا پس از ارسال فرمها یا انجام عملیاتهای خاص مانند درخواستهای POST یا PUT مورد استفاده قرار میگیرد. این نوع ریدایرکت برخلاف تغییرات دائمی مانند 301، تنها کاربران را به صفحهای موقتی هدایت میکند تا نتیجه یا پیام عملیات انجامشده را نمایش دهد، بدون آنکه آدرس اصلی برای همیشه تغییر نماید. استفاده از 303، زمانی کاربرد دارد که بخواهید پس از ثبت اطلاعات یا پردازش دادهها، کاربر به صفحه نتیجه یا تایید هدایت شود، اما ساختار آدرسها و اعتبار لینکها در سایت حفظ گردد.
ریدایرکت یک صفحه به صفحه دیگر
برای ریدایرکت یک آدرس به آدرس دیگر با htaccess باید به صورت زیر عمل کنید:
گام اول: ورود به کنترلپنل هاست
ابتدا وارد پنل مدیریت هاست خود شوید (مانند cPanel یا DirectAdmin) و از میان گزینهها، بخش File Manager را انتخاب نمایید.
گام دوم: باز کردن پوشه اصلی سایت
در File Manager مسیر public_html را باز کنید که همان روت اصلی سایت شماست و تمامی فایلهای اصلی پروژه در آن قرار دارد.
گام سوم: یافتن فایل .htaccess
در لیست فایلها به دنبال .htaccess بگردید. اگر این فایل را نمیبینید، باید تنظیم نمایش فایلهای مخفی را فعال کنید. این کار با کلیک روی Settings و فعالکردن گزینه Show Hidden Files انجام میشود.
گام چهارم: ویرایش فایل
پس از مشاهده .htaccess، روی آن راست کلیک کنید و گزینه Edit را انتخاب نمایید تا صفحه ویرایش فایل باز شود.
گام ششم: افزودن کد تغییر مسیر
در انتهای فایل، کد موردنظر را وارد کنید. بهعنوان نمونه برای یک تغییر مسیر دائمی از کد زیر استفاده نمایید.
- old.html آدرس صفحه یا فایل قدیمی است.
- new.html مسیر یا لینک صفحه مقصدی است که کاربر باید هدایت شود.
گام هفتم: ذخیره و خروج
پس از وارد کردن کد، روی Save یا گزینه ذخیره کلیک کنید تا تغییرات اعمال گردد. اگر لازم است چند مسیر را تغییر دهید، میتوانید همان دستور را در خطوط جداگانه برای هر مسیر اضافه نمایید.
گام هشتم: تست تغییر مسیر
برای اطمینان از عملکرد صحیح، آدرس قدیمی را در مرورگر وارد کنید. در صورت اجرا شدن دستور، مرورگر باید به آدرس جدید هدایت شود.
ریدایرکت http به https
برای استفاده از ریدایرکت htaccess برای تغییر پروتکل http باید به صورت زیر عمل کنید.
مرحله 1: ورود به File Manager هاست
- ابتدا وارد کنترلپنل هاست خود (مانند cPanel یا (DirectAdmin شوید و از منو File Manager را انتخاب کنید.
- به پوشه public_html بروید که روت اصلی سایت شماست.
مرحله 2: نمایش و ویرایش فایل .htaccess
- اگر فایل .htaccess را در لیست نمیبینید، از قسمت Settings گزینه Show Hidden Files را فعال نمایید.
- سپس روی فایل کلیک راست کرده و Edit را انتخاب کنید.
مرحله 3: افزودن کد ریدایرکت HTTP به HTTPS
در ابتدای یا انتهای فایل .htaccess، کد زیر را وارد کنید تا تمام درخواستها از HTTP به HTTPS هدایت شوند:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- RewriteEngine On: فعالسازی قابلیت بازنویسی آدرسها
- RewriteCond %{HTTPS} off: شرطی که بررسی میکند اگر اتصال HTTPS فعال نیست، دستور اجرا شود.
- RewriteRule: هدایت کاربر به همان مسیر اما با پروتکل HTTPS
مرحله 4: ذخیره تغییرات
روی Save Changes کلیک کنید تا کد در فایل ذخیره شود.
مرحله 5: تست عملکرد
- دامنه خود را با HTTP باز کنید (مثلا http://yoursite.com) و بررسی کنید آیا به صورت خودکار به https://yoursite.com منتقل میشود.
- برای تست دقیق میتوانید از ابزار آنلاین httpstatus.io استفاده کنید و مطمئن شوید که تغییر مسیر کد وضعیت 301 برگشت میدهد.
ریدایرکت www به بدون www و برعکس
اگر قصد دارید آدرس سایت خود را با استفاده از فایل .htaccess تغییر مسیر دهید تا همیشه با www یا بدون آن بارگذاری شود، مراحل زیر را در هاست خود اجرا کنید:
ورود به کنترلپنل هاست
ابتدا وارد کنترل پنل هاست خود مثل cPanel یا DirectAdmin شوید. در بخش Files گزینه File Manager را انتخاب کنید.
رفتن به پوشه روت سایت
- پس از ورود به File Manager مسیر public_html را باز کنید. این پوشه همان روت اصلی وبسایت شماست که فایلهای هسته پروژه در آن قرار دارند.
- پیدا کردن و ویرایش .htaccess
- در لیست فایلها به دنبال .htaccess بگردید.
- اگر فایل مخفی است، از منوی Settings تیک Show Hidden Files را فعال کنید.
- روی فایل کلیک راست و گزینه Edit را انتخاب نمایید.
افزودن کد ریدایرکت
برای مثال، اگر میخواهید همه کاربران به نسخه دارای www سایت آذرآنلاین هدایت شوند، کد زیر را وارد کنید:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^azaronline\.com [NC]
RewriteRule ^(.*)$ https://www.azaronline.com/$1 [L,R=301,NC]
- azaronline.com را با دامنه خود جایگزین کنید (در اینجا همان دامنه آذرآنلاین است)
- این کد باعث میشود اگر کسی آدرس سایت را بدون www وارد کند، به نسخه دارای www و همچنین با HTTPS امن منتقل گردد.
ذخیره و تست تغییرات
- روی Save Changes کلیک کنید تا تغییرات ذخیره شوند.
- آدرس بدون www را در مرورگر وارد کرده و مطمئن شوید که مرورگر به نسخه https://www.azaronline.com هدایت میشود.
خطاهای رایج در ریدایرکت با htaccess و رفع آنها
در ادامه خطاهای رایج htaccess به همراه علت و راهحل آنها را بررسی میکنیم.
1.خطای سینتکس (Syntax Error) و خطای داخلی سرور (500 Internal Server Error)
یک فاصله اضافی، یک کاراکتر اشتباه یا یک دستور نادرست در فایل .htaccess میتواند باعث بروز خطای 500 شود و کل سایت را از کار بیندازد. دلایل رایج این خطا عبارت است از:
- غلط املایی در دستورات مانند Rewriterule به جای RewriteRule
- فاصله اضافی در ابتدا یا انتهای خطوط
- استفاده از کاراکترهای نامعتبر
- فراموش کردن فاصله بین پارامترهای یک قانون (مثلا بین [L,R=301])
مثال کد اشتباه
غلط املایی در RewriteRule و نبودن فاصله در فلگها
RewriteEngine On
Rewriterule ^old-page.html$ /new-page/ [L,R=301]
روش رفع:
- همیشه قبل از ویرایش، یک نسخه پشتیبان از فایل .htaccess خود تهیه نمایید.
- کد خود را به دقت بررسی کرده و به دستورات، فاصلهها و کاراکترها توجه کنید.
- میتوانید از ابزارهای آنلاین برای بررسی سینتکس فایل .htaccess خود استفاده نمایید.
- اگر سایت شما از دسترس خارج شد، سریعا فایل پشتیبان را جایگزین فایل ویرایش شده کنید.
2.ترتیب نادرست قوانین
فایل .htaccess از بالا به پایین خوانده و اجرا میشود. اگر ترتیب قوانین شما اشتباه باشد، ممکن است یک قانون کلیتر، یک قانون خاصتر را که بعد از آن آمده، نادیده بگیرد.
RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L]
این قانون خاص هرگز دیده نمیشود.
RewriteRule ^blog/my-old-post$ /articles/my-new-post [R=301,L]
روش رفع:
در این مواقع برای رفع مشکل همیشه قوانین خاصتر را قبل از قوانین عمومیتر قرار دهید. کد صحیح به صورت زیر باید نوشته شود.
# اول قانون خاصتر
RewriteRule ^blog/my-old-post$ /articles/my-new-post [R=301,L]
# سپس قانون عمومیتر
RewriteRule ^blog/(.*)$ /articles/$1 [R=301,L]
3.مشکلات مربوط به URLهای فارسی
URLهای حاوی کاراکترهای فارسی (یونیکد)، توسط مرورگرها به صورت خودکار کدگذاری (URL Encode) میشوند.
مثال: آدرس زیر:
https://example.com/مقالات/آموزش-سئو
در مرورگر به این شکل تبدیل میشود:
https://example.com/%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA
در این صورت، ممکن است شما در فایل .htaccess خود از URL فارسی دیکد شده استفاده کنید، درحالیکه سرور در حال پردازش نسخه کدگذاری شده است.
روش رفع:
برای رفع مشکل هر دو حالت (فارسی و کدگذاری شده) را امتحان کنید. در اکثر سرورهای مدرن، استفاده از خود کاراکترهای فارسی با فرمت UTF-8 کار میکند، اما همیشه اینطور نیست.
نکات مهم سئو هنگام ریدایرکت کردن صفحات
ریدایرکت کردن صفحات، ابزاری حیاتی برای حفظ تجربه کاربری و سئو هنگام تغییر آدرسها یا ساختار وبسایت است. بااینحال، اجرای نادرست آن میتواند به جای انتقال اعتبار، منجر به افت شدید رتبه و از دست رفتن ترافیک ارگانیک شما شود.
- استفاده از ریدایرکت 301: برای انتقال دائمی، همیشه از کد 301 استفاده کنید تا اعتبار سئو منتقل شود.
- ریدایرکت به صفحه مرتبط: هر URL قدیمی را فقط به نزدیکترین و مرتبطترین URL جدید هدایت کنید.
- پرهیز از ریدایرکت به صفحه اصلی: از ریدایرکت کردن صفحات حذف شده به صفحه اصلی سایت خودداری نمایید.
- جلوگیری از زنجیره ریدایرکت: مطمئن شوید ریدایرکتها مستقیما به آدرس نهایی میروند و تو در تو نیستند.
- بهروزرسانی لینکهای داخلی: لینکهای داخل سایت که به صفحه قدیمی اشاره داشتند را به آدرس جدید اصلاح کنید.
- آپدیت نقشه سایت: آدرسهای قدیمی را از نقشه سایت حذف و آدرسهای جدید را جایگزین کنید.
- یکسانسازی دامنه: تمام نسخههای آدرس سایت(www, non-www, http) را به یک نسخه اصلی )معمولا (https://www ریدایرکت کنید.
ریدایرکت با فایل htaccess: بهترین روش برای سئو و مدیریت لینکها
ریدایرکت آدرس های سایت از طریق فایل htaccess. یکی از قدرتمندترین روشها برای مدیریت مسیرهای دسترسی، بهینهسازی سئو و بهبود تجربه کاربری است. با استفاده صحیح از این فایل میتوانید نسخههای متفاوت دامنه را یکسانسازی کنید، از ایجاد حلقههای بیپایان جلوگیری نموده و امنیت سایت را با هدایت به HTTPS تضمین کنید.
اجرای دقیق این تغییرات نیازمند دانش فنی و آشنایی با ساختار Apache است تا از بروز خطاهای ناخواسته جلوگیری شود. اگر میخواهید این تنظیمات را بدون دردسر و با پشتیبانی تخصصی انجام دهید، همین حالا به Azaronline.com مراجعه کنید و از سرویسهای هاستینگ حرفهای و مشاوره رایگان ما برای پیادهسازی بهترین ریدایرکتها بهرهمند شوید.
سوالات متداول
تفاوت ریدایرکت 301 و 302 چیست؟
ریدایرکت 301 دائمی و مناسب انتقال همیشگی آدرس است. درحالیکه 302 موقت بوده و برای تغییر مسیر کوتاهمدت استفاده میشود.
چگونه میتوان تمام درخواستها را از HTTP به HTTPS هدایت کرد؟
با افزودن دستورهای RewriteCond %{HTTPS} off و RewriteRule به فایل .htaccess میتوان همه آدرسها را به نسخه امن HTTPS منتقل کرد.
چرا ریدایرکت من باعث ایجاد حلقه بیپایان میشود؟
این مشکل معمولا به دلیل تداخل قوانین، شرطگذاری اشتباه یا استفاده همزمان از چند افزونه ریدایرکت در سایت ایجاد میشود.
آیا تغییر فایل .htaccess روی سئو سایت تاثیر دارد؟
بله، اجرای صحیح ریدایرکتها میتواند ارزش لینکها و اعتبار دامنه را حفظ کند، اما تنظیمات اشتباه ممکن است باعث افت رتبه شود.
چگونه یک صفحه خاص را به آدرس جدید هدایت کنیم؟
میتوانید از دستور ساده Redirect 301 /old.html /new.html در فایل .htaccess استفاده کنید.
آیا قبل از تغییر .htaccess باید پشتیبان بگیرم؟
بله؛ زیرا هر خطای دستوری میتواند باعث از کار افتادن سایت شده و بدون بکاپ بازگردانی مشکل دشوار خواهد بود.

من فرزانه یوسفی هستم؛ نویسنده و تولیدکننده محتوای وب. علاقه زیادی به تحقیق و نوشتن دارم و تلاش میکنم مطالب کاربردی و بهروز ارائه کنم تا مطالعه برای خوانندگان لذتبخشتر و مفیدتر باشد.