آموزش ریدایرکت HTTP به HTTPS با 4 روش اصولی
ریدایرکت HTTP به HTTPS سایت جدای از اینکه امنیت سایت شما را تامین میکند، در مبحث سئو هم امتیازی برای آن درنظر گرفته شده است. مقوله امنیت یکی از مهمترین اقدامات در دنیای دیجیتال است که تمامی مرورگرها روی آن تاکید ویژهای دارند. بههمین دلیل موتورهای جستجو نیز بهطور غیرمستقیم به آن بها میدهند.
تفاوتی که در این دو پروتکل وجود دارد، صرفا بحث امنیتی آن است. وگرنه باقی خصوصیات آنها یکسان است. تامین امنیت سایت اولین موضوعی است که باید روی پیادهسازی آن با رعایت سادهترین نکات اههتمام ورزید که ریدایرکت دامنه به HTTPS اولین موضوع است.
در ادامه این مقاله از وبلاگ سون هاست به بررسی 4 روش مختلف برای آموزش ریدایرکت HTTP خواهم پرداخت که هر یک بنا به محیط هاست، وبسرور و CMS مورد استفاده میتواند پیادهسازی شود.
چرا تبدیل HTTP به HTTPS اهمیت دارد؟
قبل از بررسی دلایل و اهمیت این کار بهتر است کمی با این پروتکلها آشنا شویم. پروتکل HTTP که مخفف Hypertext Transfer Protocol است، اشاره به پروتکل انتقال ابرمتن بر روی بستر اینترنت دارد که فرایند انتقال انواع داده را فراهم میکند. حال HTTPS که فقط در انتها شامل مخفف عبارت Secure است، اشاره به نوع بالاتر این پروتکل دارد که ایمنتر شده است.
بدین معنی که کلیه دادههایی که بین سرور و کاربر رد و بدل میشوند از طریق پروتکل SSL/TLS به کمک رمزنگاری خاصی که از طریق کلیدهای عمومی و خصوصی ایجاد میشود امن شده است. در نتیجه اشخاص ثالث قادر به شنود این دادهها و سرقت اطلاعات نخواهند بود.
مزایای استفاده از HTTPS
چند سالی است که غولهای فناوری نظیر گوگل، مایکروسافت، کلودفلر، فایرفاکس و… با یکدیگر در حال همکاری بوده و بنیادی را برای ایمنسازی تبادیل اطلاعات در فضای اینترنت تشکیل دادهاند. تلاش این شرکتها ارائه راهکارهای مختلف بر روی محصولات و خدماتشان است که استفاده از پروتکل امن HTTPS را در همه سایتها فراگیر کنند. استفاده از این پروتکل چند مزیت مهم دارد که عبارتند از:
- افزایش امنیت و اعتماد: از آنجا که تمامی دادههای با رمزنگاری SSL/TLS ایمن میشوند، کاربران اعتماد بیشتری به سایت خواهند کرد و خیالشان آسوده است که دادههای آنها شنود نمیشود. از سوی دیگر مرورگرها نیز به کمک برچسبهای قفل سبز این موضوع را به کاربر گوشزد میکنند.
- حل مشکل ناامنی هنگام دسترسی به سایت: تقریبا بیش از ۲ سالی میشود که تمامی مرورگرهای رایج فایرفاکس، گوگل کروم، اج و اپرا هنگام دسترسی به سایتهایی که فاقد پروتکل HTTPS هستند یک متن هشدار نمایش میدهند و اعلام میکنند که دسترسی به سایت مورد نظر بر بستر HTTP ممکن است غیرایمن باشد. برای دسترسی به سایت مورد نظر نیز اجبارا باید روی دکمه Accept Risk یا Continue کاربر ریسک آن را بپذیرد که همین عامل دلیلی برای کاهش سئو سایت و افزایش نرخ خروج میشود.
- احراز هویت سایتهای ایمن: با توجه به اینکه بسیاری سایتها اجبار به استفاده از این ابزار را اجباری کردهاند، وجود SSL و استفاده از HTTPS بدون نیاز به انجام کارهای پیچیده قابل تایید بوده و احراز هویت خودکار صورت میگیرد.
- امکان دریافت نماد دو ستاره: در صورتی که بخواهید برای سایت خود نماد اعتماد ۲ ستاره دریافت کنید، لازمه آن استفاده از پروتکل HTTPS است. حال به لطف رواج استفاده از این پروتکل میتوانید به سادگی نماد دو ستاره نیز دریافت کنید.
مطمئنا استفاده از این پروتکل مزایای دیگر هم دارد که میتواند از نظر سئو، بهبود تجربه کاربری و اعتماد کاربر مورد توجه قرار گیرد. اما چون تاثیر آنها غیرمستقیم است، لزومی ندارد زیاد به این مباحث بپردازیم.
آموزش ریدایرکت HTTP به HTTPS
برای ریدایرکت دامنه به HTTPS میتوانید بسته به وبسرور مورد استفاده و محیطی که سایت شما بر روی آن میزبانی میشود اقدام کنید که شامل ۴ روش مرسوم است. اما در حالت کلی همان روش اول میتواند برای هر نوع سایتی قابل استفاده باشد.
توجه: پیش از هر کاری، ابتدا از نصب و فعال بودن SSL روی هاست خود مطمئن شوید. همچنین اطمینان حاصل کنید که یک نسخه بکاپ از آخرین تغییرات سایت خود تهیه کنید تا اگر اشتباهی رخ داد قابل بازگردانی باشد. استفاده از Redirect 301 فراموش نشود، اطلاعات بیشتر: آشنایی با انواع ریدایرکت 3XX.
ریدایرکت HTTP به HTTPS با فایل htaccess.
مطمئنترین روش ریدایرکت HTTP به HTTPS از طریق فایل htaccess است. این فایل که در تمامی نرمافزارهای آنلاین و سایتساز مورد استفاده قرار میگیرد، بر روی هر نوغ وب سرور قابل اجرائی بوده و سایر روشهایی که در این مقاله معرفی خواهد شد بر پایه همین ویژگی هستند؛ بدین معنی که سایر روشها نیز با اعمال تغییرات در این فایل صورت میگیرد.
هیچ تفاوتی در اینکه از کدام کنترل پنل هاست مانند سی پنل، دایرکت ادمین، پلسک و… استفاده کنید ندارد. کافی است وارد مسیر اصلی public_html هاست خود شده و این فایل را ویرایش کنید. یا اینکه اگر این فایل را ندارید با ایجاد فایل جدید با همین نام، آن را مدیریت کنید.
چندین سناریو مختلف میتواند برای ریدایرکت HTTP به HTTPS وجود داشته باشد که شامل کل سایت، ریدایرکت به یک پوشه خاص یا دامنه خاص میشود که در ادامه هر ۳ را معرفی میکنیم.
۱. ریدایرکت HTTP به HTTPS در کل سایت
در صورتی که میخواهید تمامی صفحات دامنه را به HTTPS ریدایرکت کنید کد زیر را در این فایل قرار دهید.
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]
۲. ریدایرکت پوشه خاص به HTTPS
اگر میخواهید صرفا یک پوشه خاص از دامنه را به HTTPS ریدایرکت کنید از کد زیر استفاده کنید:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} folder RewriteRule ^(.*)$ https://www.domain.com/folder/$1 [R=301,L]
۳. ریدایرکت دامنه خاص به HTTPS
اگر میخواهید صرفا بخش خاصی از دامنه به HTTPS ریدایرکت شود از کد زیر استفاده کنید:
RewriteEngine On RewriteCond %{HTTP_HOST} ^domain\.com [NC] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]
نکته: در تمامی کدهای بالا، بهجای domain.com نام و پسوند دامنه خود را وارد کنید. همچنین در صورتی که از www استفاده نمیکنید، آنها را حذف کنید. بهجای folder نیز نام پوشه خود را در روش ذکر شده جایگزین کنید.
ریدایرکت HTTP به HTTPS در وردپرس
فرآیند ریدایرکت در وردپرس میتواند هم با استفاده از افزونه و هم بدون افزونه صورت گیرد که در ادامه هر دو را بررسی میکنیم.
روش اول: تبدیل HTTP به HTTPS در وردپرس بدون افزونه
برای این منظور ابتدا باید در تنظیمات وردپرس پروتکل سایت خود را به HTTPS تغییر دهید. بنابراین از پیشخوان وردپرس به منوی تنظیمات> عمومی مراجعه کرده و مانند تصویر زیر آدرسهای سایت خود را از HTTP به HTTPS تغییر دهید.
پس از کلیک روی دکمه ذخیره تغییرات از پیشخوان وردپرس خارج خواهید شد. مجددا از طریق صفحه ورود به پیشخوان وردپرس وارد شوید. حال باید فایل htaccess را مطابق با مراحلی که در روش اول ذکر شد ویرایش کنید. برای اینکه از کد کاملی استفاده کنید میتوانید از کدهای زیر استفاده کنید.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Ensure WordPress Handles URLs Properly
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Fix Mixed Content Issues
<IfModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>
این کد شامل ریدایرکت HTTP به HTTPS، ریدایرکت ۳۰۱، کدهای مورد نیاز وردپرس و کد مورد نیاز برای رفع خطای Mixed Content است.
روش دوم: تبدیل HTTP به HTTPS با افزونه وردپرس
در این روش میتوانید بهسادگی با استفاده از یک افزونه ساده این کار را انجام دهید. کاری که افزونه برای شما انجام خواهد داد دقیقا افزودن همان کدهایی است که باید به فایل htaccess. اضافه شوند.
برای این منظور میتوانید از افزونه Really Simple Security استفاده کنید که پیش از این با نام Really Simple SSL شناخته میشد. از پیشخوان وردپرس به منوی افزونهها> افزودن افزونه تازه رفته و سپس نام این افزونه را جستجو کنید.
سپس روی دکمه هماکنون نصب نمایید کلیک کرده و منتظر بمانید تا فرآیند نصب کامل شود. در نهایت روی دکمه فعالسازی کلیک کنید. پس از فعال شدن افزونه منویی مشابه تصویر زیر با نام امنیت به سایت شما افزوده خواهد شد.
از تب تنظیمات به منوی عمومی مراجعه کرده و سپس گزینه تغییر مسیر را روی htaccess 301 قرار دهید.
ریدایرکت دامنه HTTP به HTTPS در هاست سی پنل
اگر از هاست سی پنل استفاده میکنید، ریدایرکت http به https در cPanel یکی از سادهترین کارهایی است که میتوانید انجام دهید. کافی است از بخش Domains با کلیک روی یک دکمه این کار را انجام دهید. برای این منظور طبق مراحل زیر عمل کنید.
- ابتدا به کمک آموزش ورود به هاست سی پنل وارد هاست خود شوید.
- سپس مانند تصویر روی گزینه Domains که در بخشی با همین نام قرار دارد کلیک کنید.
- در صفحه باز شده لیست دامنهها نمایش داده میشود. همانطور که در ستون Force HTTPS Redirect در تصویر زیر میبینید، این گزینه را روی حالت On قرار دهید.
با انجام این کار، ریدایرکت HTTPS به صورت ریدایرکت ۳۰۱ بهصورت خودکار درون فایل htaccess اعمال شده و روی کل دامنه شما اعمال میشود.
نکته: در صورتی که گزینه Force HTTPS Redirect را در بخش Domains هاست خود ندارید، مطمئن شوید که SSL بر روی هاست شما نصب و فعال شده باشد. اگر هنوز فعال نکردهاید میتوانید به کمک مقاله فعال سازی گواهینامه SSL/TLS در هاست سی پنل آن را فعال کنید.
هدایت HTTP به HTTPS در هاست دایرکت ادمین
در صورتی که از هاست دایرکت ادمین استفاده میکنید، میتوانید در این کنترل پنل نیز مشابه سی پنل این کار را انجام دهید. اما پیش از شروع لازم است که ابتدا از طریق تنظیمات دامنه، گزینه نصب و فعال سازی SSL را فعال کنید.
از آنجایی که در محصولات اشتراکی سون هاست، هاست دایرکت ادمین ارائه نمیشود و از سوی دیگر نسخههای دایرکت ادمین شامل دو نوع رابط کاربری قدیمی و جدید میشود، از توضیحات این بخش میگذریم. پس از فعال کردن SSL میتوانید به کمک ویرایش فایل htaccess مانند روش اول امکان ریدایرکت را داشته باشید.
RewriteEngine on RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
رفع خطای Mixed Content با ریدایرکت HTTPS
از آنجایی که پیش از این آدرسهای موجود در صفحات شما با پرتکل HTTP بوده است ممکن است کلیه آدرسهایی که از طریق تغییر نشانی وردپرس اعمل میکنید تغییر نکرده باشد و بخشی از آنها با http لینک شده باشند. خصوصا تنظیماتی که در قالب و بخشهای دیگر برای لود فایلها وجود دارد.
از همینرو ضروری است تا از طریق کوئری زدن به دیتابیس کلیه آدرسها را به پروتکل https ویرایش کنید. اما از آنجایی که این کار نیازمند داشتن تخصص در کار با mysql است، توصیه میکنم بهجای آن با استفاده از افزونه ساده Better Search Replace این کار را انجام دهید.
این افزونه را پیش از این در مقاله جستجو و جایگزینی عبارات در دیتابیس وردپرس معرفی کردهام. کافی است پس از نصب، آدرس دامنه خود را در کادر find بهصورت http://site.com وارد کرده و در کادر replace نیز آدرس دامنه را بهصورت https://site.com وارد کنید. توجه کنید که به جای site.com باید آدرس دامنه خودتان را جایگزین کنید.
پس از جستجو در همه جداول، آدرسهای دامنه اصلاح شده و خطای Mixed Content در وردپرس نیز برطرف خواهد شد.
جمعبندی نهایی
در این مقاله به معرفی ۴ روش برای ریدایرکت http به https پرداختم که میتوانید متناسب با نوع کنترل پنل هاست، سرور مورد استفاده و سیستم مدیریت محتوای وردپرس از آنها استفاده کنید.
موضوعی که باید پیش از هر چیزی قبل از انجام این کار بررسی کنید نصب و فعال بودن SSL بر روی هاست و سرور است. برای بررسی فعال بودن آن نیز کافی است آدرس سایت خود را بهصورت دستی با پرتکل https باز کنید. در صورتی که آیکون قفل مرورگر بهصورت بسته و بدون خط خوردگی عبارت https نمایش داده شود به معنی نصب کامل آن است.
سپس میتوانید به کمک روشهای ذکر شده هر کدام را که راحتتر هستید انجام دهید. اما در پایان به این نکته توجه کنید که باید سرچ کنسول سایت خود را در گوگل مجددا با آدرس https ثبت کنید و از طریق قابلیت Change of Address به گوگل این تغییر را اعلام کنید تا صفحات شما با این ساختار جدید ایندکس شوند. میتوانید مقاله تغییر دامنه سایت بدون افت سئو را مطالعه کنید که تقریبا همین منظور را دارد با این تفاوت که به جای تغییر دامنه، شما پروتکل را تغییر خواهید داد.