آموزش جامع ریدایرکت کردن http به https پس از فعال سازی SSL در انواع هاست سیپنل و دایرکت ادمین و همچنین با استفاده از افزونه وردپرس یا حتی در CDN کلودفلر و رفع خطا های رایج مثل خطای mixed content به چند روش مختلف.
جدول محتوای این صفحه:
اگر گواهی SSL را برای وبسایت خود فعال کردهاید، آدرس سایت شما میتواند به دو صورت با پروتکلهای “http” و “https” باز شود. اما موتورهای جستجو، پروتکل نیز را به عنوان بخشی از آدرس وبسایت در نظر میگیرند. به طور دقیقتر، آدرس وبسایت با استفاده از “https” و “http” به طور جداگانه در نظر گرفته میشود. این مسئله میتواند منجر به ایجاد دو نسخه مجزای وبسایت شما شود که موتورهای جستجو آنها را به عنوان محتوای تکراری یا duplicate content در نظر میگیرند.
برای پیشگیری از این مشکلات، بهتر است SSL را در هاست خود فعال کرده و همواره از پروتکل “https” برای وبسایتتان استفاده کنید. دو دلیل اصلی وجود دارد که استفاده از https توصیه میشود:
خوشبختانه، شما میتوانید گواهی SSL را به صورت رایگان از بسیاری از صادرکنندگان دریافت کنید و بیشتر هاست های اشتراکی SSL رایگان ارائه میدهند. پس اکنون سوال این است: چگونه میتوان تمامی آدرسهای “http” را به “https” ریدایرکت یا هدایت کرد؟
اگر از هاست با کنترل پنل cPanel استفاده میکنید، ابتدا باید مطمئن شوید که ارائهدهنده هاست قابلیت autossl را برای سایت شما در دسترس قرار داده است و شما از این گواهی برای سایت خود استفاده کردهاید. حالا برای ریدایرکت کردن به SSL در هاست cPanel میتوانید از دو روش زیر استفاده کنید:
وارد cPanel شوید و به فایل منیجر بروید که در آنجا می توانید فایل htaccess. را پیدا کنید. اگر این فایل در پوشه public_html خود پیدا نکردید باید نمایش فایل های مخفی را فعال کنید.
موارد زیر را در انتهای فایل .htaccess اضافه کنید:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
توجه: اگر از قبل عبارت «RewriteEngine On» را در فایل htaccess شما وجود دارد، دیگر نیازی به کپی کردن آن ندارید. و تکرار آن می تواند مشکلاتی در لود سایت شما به وجود بیاورد.
در نهایت نیز این فایل را ذخیره کنید.
وارد کنترل پنل سیپنل هاست خود شوید و سپس به بخش Domains وارد شوید. در اینجا می توانید گزینه Force HTTPS Redirect دامنه مد نظر خود را فعال نمایید.
در کنترل پنل دایرکت ادمین کار شما بسیار ساده است. در همان زمانی که قصد فعال سازی SSL خود را دارید، ریدایرکت HTTP به HTTPS را با گزینه ای به نام Force Redirect برای شما اعمال میکند. برای انجام این کار ابتدا وارد کنترل پنل دایرکت ادمین خود شده و دامنه مد نظر خود را از منوی کشویی بالا انتخاب کنید. سپس روی Account Management کلیک کنید، در بخش SSL Certicates تیک گزینه Force SSL with https redirect را در پایین علامت بزنید ذخیره را کلیک کنید.
برای فعالسازی ریدایرکت http به https در وردپرس راه های مختلفی وجود دارد. یکی از ساده ترین راه ها، استفاده از افزونهی SSL واقعا ساده (Really Simple SSL) است که پس از نصب این پلاگین وارد بخش تنظیمات آن شوید و روی گزینه ی Activate SSL کلیک کنید.
اگر از CDN کلودفلر برای عملکرد و امنیت وبسایت خود استفاده می کنید، ریدایرکت آدرس های وب سایت از طریق CloudFlare بسیار آسان است.
ابتدا وارد Cloudflare شوید و سپس سایت مد نظر خود را انتخاب کنید. از طریق منوSSL/TLS به زیر منو Edge Certificates بروید. حالا کافیست که گزینه Always Use HTTPS را فعال نمایید.
حدودا چند ثانیه طول می کشد که وب سایت خود را از طریق https در دسترس داشته باشید و این تغییر مسیر به https به صورت خودکار در سایت شما صورت خواهد گرفت.
این خطا که در مرورگر گوگل کروم به بصورت 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 استفاده کنید.
پس از فعال سازی ssl در سایت خود لازم است همه ترافیک های http را به https ریدایرکت کنید. این یک تغییر امنیتی است و اطلاعات کاربران از طریق اتصال HTTPS رمزگذاری شده، که از مهمترین دلایل آن افزایش اعتماد کاربران و بهبود رتبه سئو در موتورهای جستجو میباشد.
بله، امروزه استفاده از HTTPS به عنوان استاندارد امنیتی توصیه میشود. هرچند در برخی موارد، مانند وبسایتهای استاتیک بدون اطلاعات حساس، اهمیت کمتری دارد اما بهبود امنیت و اعتماد به کاربران از طریق استفاده از HTTPS بسیار مهم است.
مشکلات Mixed Content زمانی پیش میآید که صفحه شما در حالت HTTPS است اما برخی از منابع آن (مثل تصاویر یا اسکریپتها) از طریق HTTP فراخوانی میشوند. برای حل این مشکل، شما باید تمام لینک منابع را به HTTPS تغییر دهید یا از یک CDN استفاده کنید که امکان ارائه این منابع از طریق HTTPS را داشته باشد.
سلام سایت من روی کلادفلر هست و از هاست سیپنل استفاده میکنم آیا باید هم در کلادفلر و هم در سیپنل این ریدایرکت رو انجام بدم؟
سلام اگر از طریق فایل htaccess در سیپنل هم انجام بدید کافی هست اما میتونید همزمان گزینه Always Use HTTPS رو هم در کلودفلر فعال کنید و مشکلی پیش نمیاد.
سلام ریدایرکت به HTTPS تاثیری روی سئو سایت هم داره؟
بله، ایجاد ریدایرکت از HTTP به HTTPS میتواند تاثیر مثبتی بر رتبهبندی سایت شما در موتورهای جستجو و امنیت سایت شما داشته باشد. همچنین از ایجاد خطای محتوای تکراری جلوگیری می کند.
آیا استفاده از افزونههایی مانند Really Simple SSL بهتر است یا از روش .htaccess استفاده کنم؟
پیشنهاد ما روش htaccess است. اما استفاده از هرکدام از روشها مزایا و معایب خود را دارد. افزونههای مانند Really Simple SSL به شما امکان میدهند ریدایرکت را به صورت خودکار ایجاد کنند و بدون نیاز به دانش پیچیده ای، پس اگر دانش کافی را ندارید و نگران ایجاد مشکل در سایت خود هستید این روش مناسبی است. اما اگر مایل باشید کنترل دقیقتر و ساده تری داشته باشید، ممکن است استفاده از کد .htaccess ترجیح دهید.
مرسی از آموزش خوبتون