راهنمای کامل انتقال وردپرس از HTTP به HTTPS

 بسیاری از وب سایت های وردپرسی تا همین چند وقت پیش بر روی بستر HTTP ارائه می شدند. وب سایت های معتبر پس از اینکه گوگل اعلام کرد که مهاجرت به پروتکل HTTPS موجب کاهش رتبه نخواهد شد، شروع به انتقال سایت به این پروتکل کردند.

اخیرا نیز گوگل اعلام کرده است که جولای 2018، آخرین فرصت برای پیاده سازی HTTPS است. این کمپانی اعلام کرد که از آن تاریخ به بعد مرورگر این شرکت یعنی گوگل کروم لیبل not secure را در آدرس بار وب سایت های بدون HTTPS قرار خواهد داد. این مسئله بدین معنیست که مهاجرت به HTTPS ار هر زمان دیگری واجب تر است.

در این طلب قصد داریم که راهنمای کاملی از انتقال HTTP به HTTPS را برای وب سایت وردپرسی شما ارائه دهیم. فرض می کنیم که شما دارای مهارت های اولیه کدنویسی در وردپرس هستید و همچنین یک گواهینامه امنیتی SSL را نیز در سرور سایت نصب کرده اید. بسیاری از فروشندگان هاست، امکان فروش و نصب گواهینامه امنیتی را تنها با چند کلیک به شما می دهند.

ساختار وب سایت وردپرسی

قبل از شروع بحث، بررسی اجمالی و مقدماتی از ساختار وردپرس خواهیم داشت. هر وب سایت وردپرسی داری ساختار زیر است:

ساختار سایت وردپرسی

همچنین این وب سایت ها دارای دیتابیسی برای ذخیره کردن محتوا هستند.

دیتابیس سایت وردپرسی

قبل از هر اقدامی در انتقال به HTTPS بهتر است که از وب سایت خود یک نسخه پشتیبان تهیه کنید. این قابلیت در اغلب امکانات ارائه شده از طرف هاست ها وجود دارد. گرفتن نسخه پشتیبان بسیار ضروری است، چرا که در صورت بروز مشکل بتوان به راحتی وب سایت را به حالت اولیه برگرداند.

همچنین نیاز است که فایل پشتیبان را دانلود کنیم تا بتوانیم در آن به جستجو پرداخته و تغییرات لازم را اعمال کنیم.

مهاجرت از HTTP به HTTPS به چه معناست؟

مهاجرت در اینجا به عملیاتی گفته می شود که در آن هر یک از منابع سایت که تاکنون با پروتکل HTTP بارگذاری می شدند، از این پس با پروتکل HTTPS ارائه گردند.

هنگامی که یک وب سایت مجهز به پروتکل HTTPS سعی در بارگذاری چند منبع با پروتکل HTTP کند، مشکل mixed content بروز می کند. برای جلوگیری از بروز چنین اتفاقی، می بایست مطمئن شویم که هیچ یک از منابع زیر در نهایت با پروتکل HTTP درخواست نمی شوند.

  • تصاویر
  • فایل های جاوا اسکریپت
  • فایل های CSS
  • لینک های داخلی استفاده شده در فایل های جاوا اسکریپت و CSS
  • ایفریم ها
  • ویدئوها
  • صداها
  • فرم ها
  • فونت ها

نکته مهم: دقت داشته باشید که تنها به ویرایش پلاگین ها و فایل های پوسته سایت بپردازید. در هیچ شرایطی دست به فایل های هست وردپرس در پوشه wp-admin و wp-includes نزنید. این فایل ها کاملا سازگار با HTTPS هستند و ویرایش آنها ممنوع می باشد. ایجاد هر گونه تغییر در فایل های این دو پوشه ممکن است که موجب ایجاد باگ های غیر منتظره شود.

حال فرایند انتقال را آغاز می کنیم. برای انجام مراحل زیر به یک ویرایشگر مانند Notpad++، PhpStorm یا هر نرم افزار دیگری نیاز دارید.

نکته: بهتر است که عملیات انتقال را در محیط آزمایشی (مانند staging.example.com) انجام داده و پس از حصول اطمینان از انجام صحیح انتقال، این نسخه را آنلاین کنید.

1. جستجو و جایگذاری در فایل ها

برای شروع کار می بایست به دنبال کدهایی باشید که اشاره به نسخه HTTP یو آر ال ها می کنند.

مانند نمونه به دنبال نسخه های دارای www و بدون www بگردید.

جستجو و جایگذاری در فایل های وردپرس

به جای عبارت yourdomain.com از نام دامنه خود استفاده کنید. بعد از جستجو فایل های نسخه پشتیبان سایت نمونه ما، دو مورد از درخواست فایل با HTTP مشاهده شد.

منابع HTTP در فایل های وردپرس

از آنجا که هم اکنون گواهینامه امنیتی را در هاست وب سایت نصب کرده اید، بنابراین می توانید با خیال راحت پروتکل های HTTP حال حاضر را با HTTPS جایگزین کنید.

جایگزینی منابع HTTP با HTTPS

همچنین انجام این عملیات در پوشه Plugins نیز در صورتی که از پلاگینی سفارشی خارج از مخزن وردپرس استفاده می کنید، ضروری است.

بهترین راهکار در چنین شرایطی، استفاده از توابع داخلی وردپرس برای درخواست یو آر ال صفحه اصلی سایت یعنی تابع get_home_url() است. با این کار می توان مطمئن شد که همواره نسخه صحیح لینک ها به نمایش در می آید.

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

در مرحله بعد به منابعی می پردازیم که اشاره به یک دامین خارجی دارند. برای انجام این کار نیاز است که عبارت مورد جستجو را با http:// شروع کنیم و به جستجوی چنین مورادی در پوشه Plugins و پوسته فعال سایت (در اینجا پوسته auto-repair) بگردیم.

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

ویرایشگر فایل های وردپسی

نتیجه جستجوی ما به شکل زیر است:

نتیجه جستجو

در قسمت راست عکس می توانید منابع درخواست شده با پروتکل HTTP را مشاهده کنید. در این شرایط فورا اقدام به تغییر پروتکل منابع خارجی نکنید. چرا که ممکن است این منابع با پروتکل HTTPS ارائه نشوند.

خوشبختانه در این مثال، وبسایت Flickr.com دراای گواهینامه امنیتی بوده و از پروتکل HTTPS پشتیبانی می کند. به همین دلیل می توانیم در اینجا تنها HTTP را با HTTPS عوض کنیم.

برای منابع خارجی نیار است که هر مورد را به صورت جداگانه بررسی کنید. در صورتی که به صورت یکجا و بدون بررسی منابع دست به جایگذاری HTTP با HTTPS بزنید، ممکن است که بعضی از این منابع خارجی از پروتکل HTTPS پشیبانی نکرده و در نتیجه بارگذاری وب سایت با اختلال مواجه شود. در چنین شرایطی بعضی از منابع یا تصاویر بارگذاری نشده و اجرای منابع خارجی با خطا رو به رو می گردد.

اجرای منابع خارجی با خطا

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

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

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

2. جستجو و جایگذاری در دیتابیس

در ابتدا باید ابزار search and replace database را دانلود کنید. این ابزار را در سرور سایت و با یک نام فولدر بلند آپلود کنید. (به عنوان مثال replace879846513134984451) چرا که اگر شخصی آن را به صورت تصادفی پیدا کند، وب سایت شما در معرض خطر بزرگی قرار می گیرد.

اگر به آدرس yourdomain.com/replace879846513134984451 بروید، چیزی شبیه عکس زیر را مشاهده می کنید.

ابزار search and replace database

در این مرحله نیز می بایست به جستجوی تمام دامنه های HTTP پرداخته و آنها را با HTTPS جایگزین کنید.

جایگزین کردن HTTPS با HTTP

با این کار می توان تمام درخواست های از نوع HTTP در داخل سایت را به HTTPS تغییر داد.

اگر در متن پست ها یا صفحات سایت به تصاویری خارجی لینک داده شده است، می توانید از افزونه Import External Images استفاده کرده و علاوه بر پیدا کردن این تصاویر، مشکل آنها را نیز حل کنید.

افزونه Import External Images

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

نکته: مطمئن شوید که پوشه wp-content سرور دارای اجازه دسترسی از نوع 775 است تا اسکریپت مورد نظر فعال شده و قادر به آپلود فایل ها باشد. در غیر این صورت این افزونه کار نمی کند.

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

در چنین حالتی می توانید پارامترهای max_exection_time و memory_limit را در سرور افزایش دهید. چنین مشکلی معمولا در سایت های بسیار بزرگ اتفاق می افتد. در چنین شرایطی و برای حل این مشکل، می بایست دارای مهارت های پیشرفته در کدنویسی باشد.

به عنوان یک راهکار خوب ما همیشه پیشنهاد می کنیم که به جای درج تصاویر خارجی در سایت، آنها را به وسیله یک Media Uploader در سرور قرار دهید. تصاویر خارجی در شرایطی که هاست یا دامین آن منقضی شود، در وبسایت شما بارگذاری نمی گردند.

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

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

3. پیاده سازی ریدایرکت ها

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

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

همچینی می توانید این کار را از طریف افزونه Easy HTTPS Redirection انجام دهید.

4. بروز رسانی CDN

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

5. تغییر یو آر ال در گوگل آنالیتیکس

برای تغییر یو آر ال سایت در گوگل آنالیتیکس به مسیر Admin > Property > Property Settings and Admin > View > View Settings بروید.

اتنتقال به HTTPS در گوگل آنالیتیکس

6. ثبت مجدد وب سایت در سرچ کنسول گوگل

از آنجا که گوگل دو نسخه http://www.example.com و https://www.example.com را دو نسخه متفاوتی می بیند، نیاز است که نسخه HTTPS سایت را مجددا در سرچ کنسول گوگل (نام جدید گوگل وبمستر تولز) ثبت کرده و مالکیت آن را تایید کنید.

ثبت مجدد وب سایت HTTPS در سرچ کنسول گوگل

ثبت مجدد نقشه سایت را فراموش نکنید:

ثبت مجدد نقشه سایت نسخه HTTPS

همچنین اگر فایل disavow ای نیز ثبت کرده اید، نسخه HTTPS مسیر آن را مجددا ثبت کنید.

ثبت مجدد فایل Disavow

جمع بندی

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

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

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *