حتماً شما هم مانند بسیاری از کاربران وردپرس به دنبال انتقال آدرس سایت از HTTP به HTTPS و نصب گواهی SSL در وب سایت خود هستید؟ چراکه گوگل اعلام کرده است که مرورگر Chrome تمام وبسایتهای بدون SSL را به عنوان سایتهای ناامن علامت گذاری میکند. در این مقاله، به شما نشان خواهیم داد که چگونه میتوان با اضافه کردن گواهی SSL در وردپرس، آدرس سایت خود را از HTTP به HTTPs تغییر داد.
تنظیم وردپرس برای استفاده از SSL و HTTPs
در ابتدا مجوز SSL را در نام دامنه خود فعال کرده و سپس وردپرس را برای استفاده از پروتکلهای SSL و HTTPs در وبسایت خود تنظیم نمایید. در ادامه چگونگی تنظیم دستی وردپرس برای استفاده از پروتکلهای SSL و HTTPs شرح داده میشود.
راهاندازی SSL و HTTPS در وردپرس به صورت دستی
اگرچه در این روش باید اشکالت را بهصورت دستی برطرف کرده و فایلهای وردپرس را ویرایش نمایید؛ با این حال، این یک راهحل دائمی و کارا است.
اگر این روش برای شما سخت است، میتوانید از یک توسعه دهنده وردپرس کمک بگیرید.
از آنجایی که در این روش ممکن است شما نیاز به ویرایش قالب وردپرس و فایلهای کدی آن باشید، قبل از شروع این کار حتماً در مورد چگونگی کپی کردن و چسباندن قطعات کد در وردپرس مطالعه فرمایید.
در ابتدای کار، به صفحه Settings و سپس General بروید. در اینجا باید فیلدهای آدرس URL سایت و وردپرس خود را با جایگزین کردن http با https به روز کنید.
پس از وارد کردن تغییرات مورد نظر، فراموش نکنید که روی دکمه “Save changes” کلیک کرده و تنظیماتتان را اعمال نمایید. زمانیکه تنظیمات ذخیره شوند؛ وردپرس، شما را خارج میکند و از شما خواسته میشود دوباره لاگین کنید.
پس از آن، باید با اضافه کردن کد زیر به فایل htaccess. خود، وردپرس را از HTTP به HTTPs تغییر مسیر دهید.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%
{HTTP_HOST}%{REQUEST_URI} [L,R=301]
اگر در سرورهای nginx قرار دارید، برای تغییر مسیر از HTTP به HTTPS، در فایل پیکربندی خود باید کد زیر را اضافه کنید:
server {
listen 80;
server_name example.com
www.example.com;
return 301
https://example.com$request_uri;
}
فراموش نکنید که example.com را با نام دامنه خود جایگزین نمایید.
با دنبال کردن این مراحل، از خطای کار نکردن HTTPS وردپرس (WordPress HTTPS not working error) جلوگیری خواهید کرد؛ زیرا اکنون وردپرس، کل وبسایت شما را با استفاده از https بارگیری میکند.
اگر میخواهید SSL و HTTPS را به بخش مدیریت وردپرس خود یا صفحات ورود نیز اضافه کنید، باید SSL را در فایل wp-config.php پیکربندی نمایید.
بدین منظور، کد زیر را بالای خط “That’s all, stop editing!” در فایل wp-config.php خود اضافه کنید:
define('FORCE_SSL_ADMIN', true);
این خط به وردپرس اجازه میدهد SSL و HTTPs را به بخش مدیریت نیز اضافه کند. این، در شبکههای چندسایتی وردپرس نیز کار میکند.
پس از انجام این کار، اگرچه وبسایت شما بهطور کامل برای استفاده از SSL و HTTPS راه اندازی شده است؛ اما با خطاهای mixed content روبرو خواهید شد.
این خطاها بدلیل منابعی (تصاویر، اسکریپتها یا استایلهایی) ایجاد میشوند که هنوز با استفاده از پروتکل ناامن HTTP در URLها بارگیری میشوند. در این صورت، شما نمیتوانید در نوار آدرس وب سایت خود نمادی از قفل امن را ببینید.
بسیاری از مرورگرهای مدرن به طور خودکار اسکریپتها و منابع ناامن را مسدود میکنند. شما ممکن است نمادی از یک قفل را مشاهده کنید؛ اما با یک اطلاع رسانی در مورد آن، در نوار آدرس مرورگر روبه رو خواهید شد.
با استفاده از ابزار Inspect میتوانید دریابید که کدام محتوا از طریق پروتکل ناامن ارائه شده است. خطای mixed content بهصورت یک اخطار در کنسول، با جزئیات مربوط به هر مورد از خطاهای mixed content نمایش داده میشود.
در این جا خواهید دید که بیشتر URLها تصاویر، iframeها و گالریهای تصاویر هستند؛ در حالی که، تعداد کمی از آنها اسکریپتها و استایلهای بارگذاری شده توسط افزونهها و قالبهای وردپرس شما هستند.
رفع مشکل mixed content در پایگاه داده وردپرس
همانطور که قبلاً بیان شد، بیشتر URLها نادرست عکسها، فایلها و دیگر دادههای ذخیره شده در پایگاه داده وردپرس شما هستند. در ابتدا باید مشکل مربوط به آنها را برطرف کنیم.
تمام کاری که شما باید انجام دهید این است که تمامی آنچه را که از پایگاه داده شما به URL وبسایت قدیمیتان (که با http شروع میشود) بارگذاری میشود، پیدا کرده و آن را با آدرس وب سایت جدید خود (که با https شروع میشود) جایگزین کنید.
این کار را میتوانید به راحتی با نصب و فعالسازی افزونه Better Search Replace انجام دهید.
پس از فعالسازی آن افزونه، باید به صفحه Tools و سپس Better Search Replace مراجعه نمایید. در قسمت “Search”، باید URL وب سایت خود را به همراه http اضافه کنید. پس از آن، URL وبسایت خود را به همراه https در قسمت “Replace” اضافه نمایید.
در زیر آن، تمام جداول پایگاه داده وردپرس خود را مشاهده خواهید کرد. برای اجرای یک بررسی کامل باید همه آنها را انتخاب کنید.
اکنون باید تیک کنار گزینه “?Run as dry run” را برداشته و سپس بر روی دکمه “Run Search / Replace” کلیک klhddn.
در این مرحله، افزونه در پایگاه داده وردپرس شما URLهایی را جستجو خواهد کرد که با http شروع میشوند و سپس آنها را با URLهای https ایمن جایگزین میکند. این کار، بسته به اندازه پایگاه داده وردپرس شما ممکن است مدتی طول بکشد.
رفع خطاهای mixed content ناشی از قالب وردپرس
یکی دیگر از دلایل رخداد خطای mixed content مربوط به قالب وردپرس شماست. قالبهایی از وردپرس که مطابق با استانداردهای کدنویسی وردپرس عمل میکنند، باعث این مشکل نمیشوند.
ابتدا باید برای یافتن منابع و مکانهایی که قالبها از آن بارگیری میشوند، از ابزار Inspect مرورگر خود استفاده کنید.
پس از آن، شما باید آنها را در قالب وردپرس خود پیدا کرده و با https جایگزین نمایید. این کار برای بیشتر مبتدیان کمی دشوار خواهد بود؛ زیرا قابل مشاهده نیست که کدام فایلهای قالب حاوی این URLها هستند.
رفع خطاهای mixed content ناشی از افزونهها
گاهی اوقات افزونههای وردپرس منجر به رخداد خطاهای mixed content میشوند. البته افزونههای وردپرسی که از استانداردهای کدنویسی وردپرس پیروی نمایند، باعث خطاهای mixed content نمیشوند.
ما ویرایش کردن فایلهای افزونه وردپرس را توصیه نمیکنیم؛ بلکه پیشنهاد میکنیم به سازندگان آن افزونه اطلاع دهید. اگر آنها پاسخ نمیدهند یا قادر به حل آن نیستند، باید یک جایگزین مناسب برای آن پیدا کنید.
نکته: چنانچه به هر دلیلی هنوز با خطای mixed content روبرو هستید، توصیه میکنیم از افزونه Really Simple SSL بهطور موقت استفاده نمایید. در این صورت، با رفع مشکل در وبسایت خود و یا کمک گرفتن از یک توسعه دهنده، کاربران شما تحت تأثیر قرار نمیگیرند.