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

توسط: تیم تحریریه توکان وب منتشر شده در: ۴ اسفند ۱۴۰۲

آموزش جامع ریدایرکت کردن http به https پس از فعال سازی SSL در انواع هاست سیپنل و دایرکت ادمین و همچنین با استفاده از افزونه وردپرس یا حتی در CDN کلودفلر و رفع خطا های رایج مثل خطای mixed content به چند روش مختلف.

ریدایرکت http به https در هاست سیپنل و دایرکت ادمین و افزونه وردپرس

اگر گواهی SSL را برای وب‌سایت خود فعال کرده‌اید، آدرس سایت شما می‌تواند به دو صورت با پروتکل‌های “http” و “https” باز شود. اما موتورهای جستجو، پروتکل نیز را به عنوان بخشی از آدرس وب‌سایت در نظر می‌گیرند. به طور دقیق‌تر، آدرس وب‌سایت با استفاده از “https” و “http” به طور جداگانه در نظر گرفته می‌شود. این مسئله می‌تواند منجر به ایجاد دو نسخه مجزای وب‌سایت شما شود که موتورهای جستجو آن‌ها را به عنوان محتوای تکراری یا duplicate content در نظر می‌گیرند.

برای پیشگیری از این مشکلات، بهتر است SSL را در هاست خود فعال کرده و همواره از پروتکل “https” برای وب‌سایتتان استفاده کنید. دو دلیل اصلی وجود دارد که استفاده از https توصیه می‌شود:

خوشبختانه، شما می‌توانید گواهی SSL را به صورت رایگان از بسیاری از صادرکنندگان دریافت کنید و بیشتر هاست های اشتراکی SSL رایگان ارائه می‌دهند. پس اکنون سوال این است: چگونه می‌توان تمامی آدرس‌های “http” را به “https” ریدایرکت یا هدایت کرد؟

فعالسازی ریدایرکت https در هاست Cpanel

اگر از هاست با کنترل پنل cPanel استفاده می‌کنید، ابتدا باید مطمئن شوید که ارائه‌دهنده هاست قابلیت autossl را برای سایت شما در دسترس قرار داده است و شما از این گواهی برای سایت خود استفاده کرده‌اید. حالا برای ریدایرکت کردن به SSL در هاست cPanel می‌توانید از دو روش زیر استفاده کنید:

روش اول، استفاده از فایل htaccess: ( روش پیشنهادی)

وارد cPanel شوید و به فایل منیجر بروید که در آنجا می توانید فایل htaccess. را پیدا کنید. اگر این فایل در پوشه public_html  خود پیدا نکردید باید نمایش فایل های مخفی را فعال کنید.

فعال کردن نمایش فایل های مخفی در سیپنل برای ویرایش فایل htaccess

موارد زیر را در انتهای فایل .htaccess اضافه کنید:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

توجه: اگر از قبل عبارت «RewriteEngine On» را در فایل htaccess شما وجود دارد، دیگر نیازی به کپی کردن آن ندارید. و تکرار آن می تواند مشکلاتی در لود سایت شما به وجود بیاورد.

در نهایت نیز این فایل را ذخیره کنید.

روش دوم، تنظیمات سیپنل:

وارد کنترل پنل سیپنل هاست خود شوید و سپس به بخش Domains وارد شوید. در اینجا می توانید گزینه Force HTTPS Redirect دامنه مد نظر خود را فعال نمایید.

فعال سازی Force HTTPS Redirect در سیپنل

نحوه تغییر مسیر HTTP به HTTPS در DirectAdmin

در کنترل پنل دایرکت ادمین کار شما بسیار ساده است. در همان زمانی که قصد فعال سازی SSL خود را دارید، ریدایرکت HTTP به HTTPS را با گزینه ای به نام Force Redirect برای شما اعمال می‌کند. برای انجام این کار ابتدا وارد کنترل پنل دایرکت ادمین خود شده و دامنه مد نظر خود را از منوی کشویی بالا انتخاب کنید. سپس روی Account Management کلیک کنید، در بخش SSL Certicates  تیک گزینه Force SSL with https redirect  را در پایین علامت بزنید ذخیره را کلیک کنید.

فعال سازی redirect ssl در دایرکت ادمین

فعال سازی force redirect https در دایرکت ادمین

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

برای فعالسازی ریدایرکت http به https در وردپرس راه های مختلفی وجود دارد. یکی از ساده ترین راه ها، استفاده از افزونه‌ی SSL  واقعا ساده (Really Simple SSL) است که پس از نصب این پلاگین وارد بخش تنظیمات آن شوید و روی گزینه ی Activate SSL کلیک کنید.

افزونه ssl واقعا ساده وردپرس - ریدایرکت https

ریدایرکت http به https در کلودفلر

اگر از CDN کلودفلر برای عملکرد و امنیت وبسایت خود استفاده می کنید، ریدایرکت آدرس های وب سایت از طریق CloudFlare بسیار آسان است.

ابتدا وارد Cloudflare شوید و سپس سایت مد نظر خود را انتخاب کنید. از طریق منوSSL/TLS   به زیر منو Edge Certificates بروید. حالا کافیست که گزینه Always Use HTTPS را فعال نمایید.

حدودا چند ثانیه طول می کشد که وب سایت خود را از طریق https در دسترس داشته باشید و این تغییر مسیر به https به صورت خودکار در سایت شما صورت خواهد گرفت.

ریدایرکت ssl از طریق cloudflare

 

رفع خطای mixed content error

رفع خطای mixed content ssl

این خطا که در مرورگر گوگل کروم به بصورت Your Connection is Not Secure هم نمایش داده می‌شود، معمولا مواقعی پیش می آید که تمام منابع سایت از طریق اتصال HTTPS بارگیری نشود. به زبان دیگر ممکن است برخی آدرس فایل های استاتیک قالب سایت شما با http شروع شود و همچنین به عنوان مثال همه لینک های داخلی و آدرس فایل های تصاویر داخل محتوای نوشته های شما به صورت http ذخیره شده اند که باید همه اینها به https تغییر کنند.

هنگامی که ریدایرکت https در سایت شما فعال شد، وقت آن است که بررسی کنید که پیوندهای داخلی شما دارای URL های HTTPS هستند و به درستی کار می کنند. لینک های داخلی درون محتوای سایت را بروز کنید تا خطای mixed content error را دریافت نکنید.

برای رفع این مشکل به راحتی میتوانید از افزونه Really Easy SSL در وردپرس استفاده نمایید. و یا راه دیگر میتوانید از طریق دستور زیر در phpMyAdmin همه آدرس های http ذخیره شده در دیتابیس خود را به https تغییر دهید.

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

UPDATE wp_posts
SET guid = REPLACE(guid, 'http:', 'https:')
WHERE guid LIKE '%http://example.com%';

با استفاده از این کد تمامی لینک هایی که با http شروع شده اند را به https تغییر می دهد که این تغییرات در جدول wp_post که مربوط به نوشته های سایت شما است انجام می شود که میتوانید برای جداول دیگر نیز با تغییر wp_posts این کار انجام دهید. به یاد داشته باشید به جای example.com نیز آدرس سایت خود را بنویسید.

یک راه دیگر نیز برای این تغییر وجود دارد آن هم استفاده از پلاگین Better Search Replace است برای این کار به شکل زیر عمل کنید:

این افزونه اکنون پایگاه داده وردپرس شما را برای URL هایی که با HTTP شروع می شوند جستجو می کند و آدرس هایی را که با HTTPS شروع می شوند جایگزین می کند. و اینکه چقدر طول می کشد به اندازه پایگاه داده وردپرس شما بستگی دارد.

اگر مراحل بالا را کامل کرده اید و همچنان خطای mixed content error را در سایت خود می بینید، ممکن است مشکل از قالب یا افزونه های وردپرس شما باشد. برای بررسی آن می توانید از ابزار Inspect مرورگر خود برای پیدا کردن آدرس فایل http استفاده کنید.

سوالات متداول

چرا باید از HTTP به HTTPS ریدایرکت کنیم؟

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

آیا همه وبسایت‌ها باید از HTTPS استفاده کنند؟

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

چطور می‌توانم مشکل Mixed Content را حل کنم؟

مشکلات Mixed Content زمانی پیش می‌آید که صفحه شما در حالت HTTPS است اما برخی از منابع آن (مثل تصاویر یا اسکریپت‌ها) از طریق HTTP فراخوانی می‌شوند. برای حل این مشکل، شما باید تمام لینک منابع را به HTTPS تغییر دهید یا از یک CDN استفاده کنید که امکان ارائه این منابع از طریق HTTPS را داشته باشد.

مطالب پیشنهادی

نظر شما چیست؟

نظرات کاربران

  • علی | 6 اسفند 1402 - 09:38

    سلام سایت من روی کلادفلر هست و از هاست سیپنل استفاده میکنم آیا باید هم در کلادفلر و هم در سیپنل این ریدایرکت رو انجام بدم؟

    • تیم تحریریه توکان وب | 6 اسفند 1402 - 13:40

      سلام اگر از طریق فایل htaccess در سیپنل هم انجام بدید کافی هست اما میتونید همزمان گزینه Always Use HTTPS رو هم در کلودفلر فعال کنید و مشکلی پیش نمیاد.

  • مریم درخشان | 26 اسفند 1402 - 08:09

    سلام ریدایرکت به HTTPS تاثیری روی سئو سایت هم داره؟

    • تیم تحریریه توکان وب | 26 اسفند 1402 - 12:14

      بله، ایجاد ریدایرکت از HTTP به HTTPS می‌تواند تاثیر مثبتی بر رتبه‌بندی سایت شما در موتورهای جستجو و امنیت سایت شما داشته باشد. همچنین از ایجاد خطای محتوای تکراری جلوگیری می کند.

  • ناشناس | 26 اسفند 1402 - 09:25

    آیا استفاده از افزونه‌هایی مانند Really Simple SSL بهتر است یا از روش .htaccess استفاده کنم؟

    • تیم تحریریه توکان وب | 26 اسفند 1402 - 12:12

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

  • ستایش | 10 فروردین 1403 - 14:01

    مرسی از آموزش خوبتون