ریدایرکت 301 وردپرس با کد htaccess برای redirect آدرس دامنه سایت

در wordpress با استفاد از ریدایرکت 301 وردپرس میتوان تنظیمات دلخواهی را بر روی دامنه یا url آدرس اینترنتی سایت انجام داد. به عنوان مثال ممکن است بخواهید بعد از مدتی فعالیت آدرس دامنه سایت تان را تغییر دهید در این حالت برای هدایت لینک های قدیمی به ادرس جدید باید از ریدایرکت 301 استفاده کنید. در این مقاله به آموزش ریدایرکت 301 وردپرس با استفاده از کد اچ تی اکسس htaccess برای redirect آدرس دامنه سایت در حالتهای مختلف میپردازیم پس تا انتها همراه ما باشید.

ریدایرکت 301 وردپرس با کد htaccess برای redirect آدرس دامنه سایت

کد ریدایرکت 301 وردپرس با دستورات htaccess

فایل اچ تی اکسز با نام .htaccess مخفف کلمه هایپرتکست اکسز Hypertext Access = htaccess شناخته میشود.
محل وجود این فایل در محل نصب وردپرس که معمولا روت هاست و پوشه public_html است.

به کمک این فایل ساده می توانیم تنظیمات کاربردی وب سایت خود را بر روی وب سرور اعمال نماییم. برای مثال به کمک اچ تی اکسسز می توان بسادگی آدرس دهی بخش های مختلف وب سایت را به صورت کاربر پسند و مناسب برای موتور های جستجو اصلاح نمود و یا برای امنیت بیشتر وردپرس و سایت لایه امنیتی و کلمه عبور را برای ورود به یک پوشه در نظر گرفت و یا عملیات ریدایرکت را به کمک آن صورت داد.

نمایش فایل htaccess در هاست سی پنل

ذو پنل دایرکت ادمین و سی پنل بیشترین کاربرد در مدیریت هاست و سرور را دارند.
پس از خرید هاست و نصب وردپرس با تنظیم گزینه پیوند یکتا فایل اچ تی اکسس در هاست ایجاد و دستورات لازم برای ریدایرکت مطالب سایت در ان قرار داده میشود.

برای مشاهده htaccess. در سی پنل پس از انتخاب گزینه File Manager، یک پنجره کوچک نشان داده می شود. اگر گزینه Show Hidden Files را انتخاب کنید (تیک بزنید) و روی دکمه Go کلیک کنید فایل های مخفی از جمله htaccess. نشان داده می شوند.

کدهای ریدایرکت 301 وردپرس برای تغییر آدرس دامنه

جهت استفاده از اچ تی اکسز ابتدا باید آنرا در سایت ورپرسی تان فعال کنید.
برای فعال کردن htaccess باید پس از نصب وردپرس از پیشخوان به بخش تنظیمات مراجعه کرده و با انتخاب گزینه پیوندهای یکتا، نوع آدرس دهی سایت را تعیین کنید سپس با مراجعه به محل نصب وردپرس در هاست و فعال کردن حالت نمایش فایلهای مخفی میتوانید آنرا مشاهده کنید. اگر اچ تی اکسز را برای ویرایش باز کنید کدهای پیشفرض وردپرس که برای ریدایرکت و آدرس دهی استفاده میشوند را مشاهده خواهید کرد. هر دستوری که میخواهید به اچ تی اکسز اضافه شود را بعد از دستورات وردپرس قرار دهید تا مشکلی در نحوه عملکرد سایت بوجود نیاید.

در این آموزش به معرفی کدهای زیر برای استفاده در htaccess میپردازیم.

  • ریدایرکت 301 آدرس سایت به حالت بدون www
  • ریدایرکت 301 دامنه اصلی سایت به حالت با www
  • کدهای redirect دامنه جدید در هنگام تغییر دامنه
  • ریدایرکت دامنه به حالت https در هنگام فعال بودن ssl

ریدایرکت 301 آدرس سایت از حالت بدون www به شکل دارای www و بالعکس

یکی از نکاتی که در بهینه سازی سایت یا سئو وردپرس مطرح میشود، در دسترس بودن سایت با www یا بدون www است. برای اینکار ابتدا باید در تنظیمات وردپرس آدرس سایت را بر روی حالت دلخواه تنظیم کنیم. به بخش تنظیمات سپس گزینه همگانی مراجعه میکنیم سپس گزینه های نشانی وردپرس و نشانی سایت را با حالت با www یا بدون www تنظیم میکنیم اکنون میتوانیم از کدهای دستوری زیر در اچ تی اکسس استفاده کنیم.

تنظیم نمایش سایت با www در آدرس دامنه

تنظیم نمایش آدرس دامنه سایت با www در آدرس دامنه

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

بجای عبارت example.com که نام دامنه میباشد باید ادرس دامنه خودتان را وارد کنید.

تنظیم نمایش آدرس دامنه اصلی سایت بدون www

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]

بجای عبارت example.com که نام دامنه میباشد باید ادرس دامنه خودتان را وارد کنید.

کد ریدایرکت 301 وردپرس در هنگام تعویض دامنه اصلی سایت

اگر به هر دلیلی مجبور شدید آدرس دامنه اصلی domain سایت را تغییر دهید برای جلوگیری از ایجاد خطای 404 لینکها و مطالب باید دامنه جدید را بر روی آدرس قدیمی ریدایرکت 301 کنید تا اعتبار سایت در گوگل و موتورهای جستجو حفظ شود و از نظر سئو صدمه ای به سایت وارد نشود. با اینکار خزنده موتورهای جستجو با رسیدن به ادرس قدیمی نوشته را به ادرس جدید ریدایرکت میکنند و پس از مدتی تمام لینکهای داخلی سایت در گوگل وبمستر تولز (مدتی است به گوگل سرچ کنسول تغییر نام داده است) ثبت خواهند شد. کد زیر بخوبی وظیفه ریدایرکت 301 به دامنه جدید را انجام میدهد.

کد ریدایرکت 301 وردپرس در هنگام تعویض دامنه اصلی سایت

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.net/$1 [L,R=301,NC]

example.com دامنه قدیمی و example.net دامنه جدیدی است که میخواهیم به آن ریدایرکت صورت بگیرد. در اینجا هر دو آدرس دامنه قبلی هم با www و هم بدون www به دامنه جدید ریدایرکت میشود. پس از تنظیم آدرس دامنه جدید باید سایت را دوباره در گوگل سرچ کنسول ثبت کنید و آدرسهای مربوظ به نقشه سایت را تغییر دهید.
پیش از این در مقاله ای با عنوان کد ریدایرکت کاربر وردپرس به معرفی توابع وردپرسی که میتوانیم با انها کاربران عضو شده و یا وارد شده به پیشخوان را به صحات دلخواه هدایت کنیم معرفی شده است که میتوانید از آنها در طراحی قالب وردپرس تان استفاده کنید.

4.6/5 - (19 امتیاز)
بازدیدکنندگانی که این مطلب را مطالعه کرده اند، از مطالب زیر نیز استقبال کرده اند
دیدگاهی بنویسید
37

  1. shahin
    21 آذر 1400 ساعت 23:56

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

    • پدرام تبریزی
      24 آذر 1400 ساعت 19:27

      سلام وقت بخیر
      در صورتی که آموزش به درستی پیش برده باشید انجام خواهد شد.
      می توانید برای ریدایرکت از افزونه Redirection هم استفاده کنید کافیست در مخزن وردپرس دانلود نمایید. کار با افزونه ساده است.
      با احترام

  2. mohsen
    18 تیر 1400 ساعت 14:03

    عالی بود

  3. مهدی
    30 شهریور 1399 ساعت 12:55

    با سلام و خسته نباشید، اقا دامنه اصلی سایتم فیلتر شده و دامنه جدید رو پارک دامین کردم و ریدایرکت 301 رو مطابق با اموزشتون (ریدایرکت 301 وردپرس در هنگام تعویض دامنه اصلی سایت) انجام دادم ریدایرکت انجام شده ولی وارد پیشخوان نمیشه یوزر نیم و پسورد رو میزنم وارد پیشخوان وردپرس نمیشه، این رو بگم دامنه اصلی دارای ssl هستش ولی دامنه ی جدید که میخام دراری ssl نیست.
    ممنون میشم راهنمایی کنید مشکل کجاست.

    • پدرام تبریزی
      31 شهریور 1399 ساعت 10:17

      سلام وقت بخیر
      با توجه به وارد نشدن در بخش مدیریت وردپرستون می توانید از طریق هاست وارد phpMyAdmin بشوید سپس دیتابیستان در سمت چپ پیدا نمایید و روی علامت + کلیک کنید. سپس گزینه wp_users را پیدا و کلیک کنید و Edit بزنید در صفحه باز شده یوزر خودتون به عنوان ادمین هستید را پیدا کنید و پسورد آن را تغییر دهید و حتما varchar (255) شیوه کدگذاری MD5 را انتخاب نمایید و Go را کلیک کنید. حال با پسورد جدید وارد شوید. برای ssl هم اگر درست تعریف شده باشه هیچ مشکلی در این خصوص ندارد اما در صورتی که باز هم موفق نشدید باید به فایل htaccess. رفته و کد مربوط به ریدایرکت ssl را حذف نمایید و دوباره امتحان نمایید.

  4. mahdi
    13 مرداد 1399 ساعت 08:46

    خیلی ممنون از سایت مفیدتون سایت خیلی خوبی دارین

  5. محمد
    15 شهریور 1398 ساعت 12:41

    سلام ممنونم از محتوای خوبتون
    میشه راهنمایی بفرمایید چطوری میشه کدی زد مثلا از دامنه site1.ir/files هر کسی صفحه ای رو باز کرد کلا منتقل بشه به سایت site2.ir با همون صفحه ای که باز کرده یعنی اگر کسی صفحه site1.ir/files/1 رو باز کرد بره سایت جدید به صفحه site2.ir/1 یعنی انتقال دامنه به همان ادرسی که هست به سایت جدید توی هر دوتا هم ssl فعال هستش. اگر ممکنه راهنماییم کنید

    • رضا کیانوش
      16 شهریور 1398 ساعت 07:46

      سلام وقت بخیر، دقیقا همچین آموزشی به همراه کدهای لازم در مقاله وجود داره با دقت مطالعه کنید.

  6. نازنین
    10 فروردین 1398 ساعت 16:13

    سلام
    یه سایت وردپرسی داریم. قبلا تغییرات URLها خود به خود ریدایرکت میشدن. اما الان مدتیه که هر URL که تغییر میکنه، ارور 404 میده صفحه. با ریدایرکت افزونه yoast هم جواب نگرفتم. به نظرتون ایراد از کجاست؟

    • رضا کیانوش
      10 فروردین 1398 ساعت 20:57

      سلام وقت بخیر فایل htaccess رو بررسی کنید. ممکنه تنظیمات افزونه ریدایرکت هم مشکل پیدا کرده باشه یا افونه کلا از کار افتاده باشه.

  7. وحید
    3 فروردین 1398 ساعت 20:24

    در هنگام وارد کردن کد ریدایرکت در htaccess در جلوی دامین 2 بار آی آر قرار داده بودم و متوجه نشده بودم. و حالا صفحه یک سایت به صورت شده آدرس و باز نمیشود. چطوری این مشکل حل کنم.

    • رضا کیانوش
      3 فروردین 1398 ساعت 21:10

      سلام وقت بخیر، دوباره htaccess رو ویرایش و آدرس رو اصلاح کنید. اگر بعد از ویایش هنوز مشکل داشتید بعد از مدتیکه کش سرور و مرورگرتون خالی شد مجدد بررسی کنید. نباید مشکلی وجود داشته باشه.

  8. محمدمهدی
    2 اسفند 1397 ساعت 03:38

    سلام.من دو تا فایل htaccess توی هاستم دارم.یکی توی همون بخش ورودی اصلی هاست قرار داره.یکی دیگه هم توی ” پابلیک اچ تی ام ال ” قرار داره.
    الان بخوام تغیری توشون بدم باید کدومو تغیر بدم؟!

    • رضا کیانوش
      2 اسفند 1397 ساعت 08:48

      سلام وقت بخیر، تغییرات رو در فایل htaccess ای که در پوشه public_html کنار فایلهای وردپرس هست انجام بدید.

      • محمدمهدی
        2 اسفند 1397 ساعت 17:50

        با سلام مجدد.معذرت میخوام من تغیرات رو توی هر دو فایل htaccsess انجام دادم.اشکال نداره ؟
        تغیرات توی htaccsess پابلیک اچ تی ام ال رو همونجور که شما گفتین انجام دادم.تغیری که توی فایل htaccsess ورودی هاست انجام دادم رو باید به حالت سابق برگردونم؟

        • رضا کیانوش
          3 اسفند 1397 ساعت 07:57

          سلام وقت بخیر، اگر مشکلی ایجاد نشده تفاوتی نمیکنه. موفق باشید

  9. بهزاد
    13 مهر 1397 ساعت 00:59

    این مورد رو فراموش کرده‌اید قرار بدید: ریدایرکت دامنه به حالت https در هنگام فعال بودن ssl

    • رضا کیانوش
      13 مهر 1397 ساعت 08:50

      سلام وقت بخیر،اگر گواهینامه ssl روی هاست نصب و فعال باشه وقتی افزونه ssl رو فعال کنید خودش ریدایرکت رو انجام میده البته باید در تنظیماتش گزینه ریدایرکت به https رو فعال کنید که در حالت عادی فعال هست. موفق باشید

  10. حسام
    26 شهریور 1397 ساعت 00:56

    ممنون از مطلب کامل و مفیدتون خسته نباشید

  11. علی
    12 اردیبهشت 1397 ساعت 17:09

    سلام وقت بخیر. بنده کد شما رو قرار دادم ولی فقط ادرس صفحه اصلی سایت منتقل شد ولی وقتی آدرس یک پست رو از طریق دامنه قبلی وارد میکنم دوباره وارد آدرس اون پست در دامنه قبلی میشه. ممنون میشم جوابم رو بدید.

    • رضا کیانوش
      12 اردیبهشت 1397 ساعت 22:11

      سلام وقت بخیر، بررسی کردم موردی نبود و بدرستی ریدایرکت میشد.

    • رسول
      22 آبان 1398 ساعت 15:17

      سلام دوست عزیز سایت شما آیا کاملا ریدایرکت شد با همین کد یا کار دیگه ای انجام دادید

  12. امید
    16 فروردین 1397 ساعت 10:15

    سلام من سایت کاملا حذف کردم و دامنه رو به یک هاست جدید میخواستم ببرم برای انتقال مطالب قبلی تگ و… که به صحفه اصلی در هاست جدید ریدایرکت بشه باید چیکار کنم تا ارور 404 نده و مشکلی برای سایت نشه مرسی

    • رضا کیانوش
      16 فروردین 1397 ساعت 16:34

      سلام برای تغییر دامنه یا هاست نیازی به حذف مطالب قبلی نبود! فکر نمیکنم دیگه کاری بشه انجام داد.

  13. نیاز
    8 فروردین 1397 ساعت 16:22

    سلام من سایت زیر رو داریم میخوام ریدایرکت کنم به ووکامرس آیا مشکلی پیش میاد لینک هایکه در صفحه اول گوگل هستم ممکن هست بره یا از نتایج اول بره ؟

    • رضا کیانوش
      9 فروردین 1397 ساعت 09:51

      سلام، اگر از ریدایرکت 301 بدرستی استفاده کنید احتمال وجود مشکل برای مطالب خیلی کمه

  14. دانلود آهنگ خارجی
    5 فروردین 1397 ساعت 17:08

    سلام ممنون عالی بود ده دوازده سایتو برا این کد گشتم همشون ی مشکلی داشت مطالب به ادرس معادل ریداریکت نمی شد ناقص بودن این کامل ترین کدی بود که برای ریدایرکت ادرس به معادل نوشتید تشکر

  15. حسام
    24 اسفند 1396 ساعت 15:32

    با سلام بنده یک سایت داشتم و کل سایتم رو حذف کردم از نو یک سایت دیگر با همین دامنه راه اندازی کردم. الان دامنه من عوض نشده فقط قبلا http بود و الان ssl دارم و htts است. و در کل لینک های قبلی حذف شدند و سایت جدید با لینک های جدیدی راه اندازی شده (دقت کنید دامنه عوض نشده فقط لینک های قبلی الان دیکه وجود ندارن ) و الان سوال من اینه:
    1. چطوری باید ریدایرکت 301 انجام دهم که همه لینک های قبلی به صفحه ی ایندکس من به هدایت بشن ؟ آیا باید تک تک هکه لینک ها را ریدایرکت 301 کنم یا کدی هست که همه لینک های حذف شده را انتقال بده؟
    2. آیا ریدایرکت همه لینک های حذف شده به صفحه ی اصلی ضرری برای سئوی سایت ندارد؟
    در ضمن سایتم وردپرس نیست اختضاضیه در گوگل وب مستر هم این برای لینک هایی که حذف شده در بخشی crawl error – URL Errors با خطلای 404 روبرو شدم. ممنون میشم راهنماییم کنید بنده فقط در سایت شما میتونم جواب سوالاتم رو بگیرم.

    • رضا کیانوش
      24 اسفند 1396 ساعت 19:26

      سلام، چون دیگه مطالب قبلی رو ندارید طبیعی هست که خطای 404 بوجود بیاد. به نظر من نیازی به ریدایرکت آدرس های قبلی به صفحه اصلی نیست و اینکار رو درست نمیدونم. صبر کنید بعد از مدتی خطاهای 404 برطرف میشن و لینکهای جدید سایت ایندکس میشن. تو این مدت از طریق وبمستر یا همون سرچ کنسول گوگل خطاهای 404 رو فیکس کنید.

      • حسام
        26 اسفند 1396 ساعت 09:14

        خلی ممنون از پاسخوگییتون فقط ممنون میشم بفرمایید چطوری باید این خطاها را فیکس کنم.

        • رضا کیانوش
          26 اسفند 1396 ساعت 18:40

          در بخش خطاها در سرچ کنسول گوگل، تیک کنار خطا رو بزنید و روی گزینه mark as fixed کلیک کنید.

  16. روزبه
    30 بهمن 1396 ساعت 14:51

    با سلام و درود من در حال حاضر یک وبسایت تحت جوملا دارم میخواستم به وردپرس انتقال بدم مطالب رو انتقال دادم ولی نمیخوام تو گوگل دچار مشکل بشم لطفا راهنمایی میکنید من چیکار باید بکنم؟

    • رضا کیانوش
      30 بهمن 1396 ساعت 16:50

      سلام وقت بخیر با استفاده از افزونه FG Joomla to WordPress میتونید سایت تون رو از جوملا به وردپرس منتقل کنید. آموزشهای فراوانی در سایتهای مرجع انگلیسی وجود داره که تنها کافیه نام افزونه رو جستجو کنید تا بهشون برسید. موفق باشید

  17. مهرداد
    29 بهمن 1396 ساعت 15:20

    سایت من با www بالا نمی آید. آیا با Yoast SEO میشه ریدایرکت کرد. تو اینترنت سرچ کردم دیدم نوشته باید اچ تی اکسس را ادیت کنم. کردم نشد. امکانش هست راهنمایی کنین

    • رضا کیانوش
      29 بهمن 1396 ساعت 18:53

      سلام کدهای htaccess مربوط به ریدایرکت آدرس سایت بدون www یا با www در این مقاله معرفی شده که میتونید ازش استفاده کنید. ممکنه گواهینامه ssl سایت تون به درستی نصب نشده باشه پیشنهاد میکنم به هاستینگ تیکت بدید و ازشون بخواهید مشکل رو برطرف کنن. موفق باشید

  18. حسین
    21 آبان 1396 ساعت 00:25

    سلام لطفا Blocked Resources در گوگل کنسول را هم آموزش دهید . چون سایت من حدود 395 تا Pages using this blocked resourceهستش . ممنون از سایت خوبتان

    • رضا کیانوش
      21 آبان 1396 ساعت 05:34

      سلام بزودی آموزشش رو قرار میدم