امروزه سایت های مختلفی اقدام به تغییر http به https می کنند و بعد از تغییر باید عملیات ریدایرکت http به https رو انجام بدن . در این مقاله قصد دارم که بهترین شکل ممکن برای ریدایرکت کردن رو بهتون بگم , همچنین توضیح مختصری در مورد این موضوع خواهیم داشت که دلیل این کار برای چیه اگر ریدایرکت رو انجام ندیم چه اتفاقی برای سایت ما میفته.
https برای چیست ؟
HTTP مخفف HyperText Transfer Protocol (پروتکل انتقال فرا متنی) است. این پروتکل امکان ایجاد ارتباط بین سیستمهای مختلف را فراهم میکند. پروتکل یاد شده عموما به منظور انتقال دادهها از یک وبسرور به یک مرورگر وب که در آن صفحات وبسایتها به نمایش در میآیند مورد استفاده واقع میشود.
مشکل اینجا است که HTTP دادهها را رمزنگاری نمیکند و به همین دلیل افراد شخصثالث میتوانند به اطلاعاتی که بین سیستمها و تحت این پروتکل منتقل میشوند دسترسی داشته باشند.
اما میتوان با بهره بردن از HTTPS (حرف S در اینجا به معنی امن است) انتقال اطاعات بین سیستمها را با امنیت انجام داد.
بدین منظور باید از یک گواهی SSL استفاده کنید تا یک لایهی امنیتی در اتصال بین وبسرور و مرورگر وب ایجاد شود.
بدون HTTPS دادههایی که بین سرور و مرورگر رد و بدل میشوند، ناامن خواهند بود. اهمیت این موضوع بخصوص برای سایتهایی که در آنها اطلاعات مهم و حساس ارسال و دریافت میشود بیشتر است که از این جمله میتوان به وبسایتهایی که فعالیت اقتصادی دارند یا از درگاههای پرداخت آنلاین بهره میبرند اشاره کرد.
آموزش نحوه ریدایرکت http به https از طریق htaccess
عموما وبمسترهاییکه بر روی سایت خود اقدام به نصب گواهینامه امنیتی میکنند، مایل هستند کاری کنند که کلیه ی کاربرانشان به نحوی به آدرس دارای https سایت هدایت شوند و در واقع استفاده از https در سایت به عنوان یک الزام باشد.در این حالت لازم است در فایل اچ تی اکسس سایت خود رول هایی تعریف کنید که تمامی حالات ممکن وارد کرده آدرس سایت را در نظر گرفته و بر اساس آن کاربران را به آدرس امن سایت هدایت نمایند.
روشی که برای ریدایرکت کردن معرفی می کنم از طریق فایل اچ تی اکسس که داخل روت هاست شما قرار داره انجام خواهد , برای شروع کار وارد هاستتون بشید و این فایل رو در حالت ویرایش باز کنید , قبل از هر گونه تغییری یک نسخه پشتیبانی از فایل مربوط نگه دارید. بعد از اینکه فایل در حالت ویرایش باز شد قطعه کد زیر رو به انتهای کد های داخل این فایل اضافه کنید
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
در کد بالا مشخص کردیم که روی سایت ما ssl نصب شده و با https باز میشه , حالا دستور دادیم که حالت قبل رو که http بود تغییر بده به https که عملیات تبدیل به صورت خودکار و اتوماتیک انجام میشه و بعد اگر به حالت قبل بود سریع ریدایرکت کنه به ادرس جدید.
چرا بعد از تهیه ssl باید url قدیمی رو به url جدید ریدایرکت کنیم ؟
اگر زمینه ایندکس شدن مطالب سایت در گوگل آشنایی داشته باشید گوگل گفته سایتتون رو فقط با یه ادرس به من معرفی کنیم در یکی از مقالات قبلی سایت آموزش آدرس سایت با www یا بدون www توضیح داده بودیم برای اطلاعات بیشتر مقاله رو مطالعه کنید , حالا باید ادرس سایت ما با یکی از این حالت ها باز بشه . چون قبلا همه مطالب با http ایندکس شده و گوگل سایت ما رو به این صورت میشناسه ما باید بیام با عملیات ریدایرکت کردن به گوگل بگیم این تغییر رو داشتیم و با استفاده از https مطالب ما رو ایندکس کن از این به بعد , حتی قبلی ها هم تغییر میده .
چرا بعد از فعال کردن https در آدرس بار سبز نمایش داده نمیشه ؟
اگر دقت کرده باشید باید سایت هایی که اچ تی تی پی اس دارن ابتدای ادرس به این صورت نمایش داده میشه تصویر زیر رو مشاهده کنید
تصویر بالا حالت درست می باشد و هیچ مشکلی در نمایش https وجود ندارد و سبز رنگ شده. در تصویر زیر روی سایت https ست شده ریدایرکت هم صورت گرفته اما چرا سبز نیست در تصویر زیر ببینید
همونطور که مشاهده کردید در تصویر دوم مشکل سبز نشدن ssl رو داریم و به صورت زرد رنگ نمایش داده می شود . در ادامه دلیل این مورد رو بخونید.
اگر بعد از نصب درست https رو سایت با مشکل سبز نشدن مواجه شدید به این دلیل می باشد که داخل سایت شما برخی لینک ها با https فراخوانی نمی شوند و هنوز با پرتوکل http فراخوانی می شوند , علت زرد رنگ بودن قفل SSL، به سبب لینک های http سایت شما می باشد که در صفحه https قصد لود شدن دارند و مرورگر آنها را بلاک می نماید. احتمالا افزونه ای در وردپرس بتواند تمامی این لینک ها را به https ، rewrite نماید. پس باید برای تغییر لینک ها اقدام کنید , از آنجایی که تغییر دستی بصرفه نیست و واقعا زمان بر می باشد باید دنبال راه حلی باشیم که بتونیم براحتی این کار رو انجام بدیم. برای این کار قبلا مقاله آموزش جایگزین کردن لینک در وردپرس به صورت یکجا رو داخل سایت قرار دادیم که می تونید در این زمینه هم مطالعه کنید.
این آموزش در سطح اینترنت کامل ترین مقاله در ربطه با این موضوع می باشد. امیدوارم مفید باشه براتون و اشتراک گذاری مطالب برای حمایت از ما فراموش نشه.