گواهینامه SSL یکی از اقدامات امنیتی موثر در وب سایت ها می باشد که علاوه بر بحث امنیت، در بحث سئو نیز اکثر موتورهای جستجوگر مخصوصا گوگل سعی می کنند وب سایت هایی که با پروتکل HTTPS در دسترس هستند را در نتایج جستجو به کاربرانشان پیشنهاد کنند. امروزه اکثر هاستینگ ها روی هر سرویس و پلن از هاست خود یک گواهینامه رایگان SSL به شما ارائه می کنند که می توانید توسط آن وب سایت خود را با HTTPS به کاربرانتان ارائه کنید تا امنیت وب سایت خود و اطلاعات کاربران را افزایش دهید. پیش از این در انجمن بیتاک یک تاپیک درباره نحوه اجبار کاربران به استفاده از HTTPS در وردپرس را آموزش دادیم و کدی در آن معرفی کردیم که می توانستید وردپرس را مجبور به استفاده از HTTPS کنید. در این تاپیک نیز کدی مشابه با آن قرار است در اختیارتان قرار دهیم که بتوانید با استفاده از فایل .htaccess
کاربران را مجبور به استفاده از https کنید و اگر کاربری قصد داشت سایت شما را به صورت http مشاهده کند، بطور خودکار به https منتقل شود.

فایل .htaccess
یک فایل حیاتی و مهم در سایت است که عموما در روت اصلی سایت یا همان محل نصب اسکریپت قرار دارد، که می تواند با دستورات داخل خود روی بخش های زیادی از سایت مدیریت داشته باشد. از کش و کوکی سایت گرفته تا آدرس ها و ریدایرکت ها، و حتی بلاک کردن آی پی خاص و …! در این تاپیک قرار است چندین دستور مختلف به شما معرفی کنیم که کارایی همه آنها مشابه است اما ممکن است در برخی از هاستینگ ها و سرورها نیاز به استفاده از یک نوع دستور خاص داشته باشید بنابراین حالت های مختلف این کد را در ادامه به شما ارائه می کنیم.
حالت پیش فرض و ساده
این کد تقریبا در اکثر هاستینگ ها می تواند کاربران را مجبور به استفاده از HTTPS کند. بنابراین کافیست ابتدا این کد را در فایل .htaccess
قرار داده و سایت خود را بررسی کنید:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
حالت دوم / کمی پیشرفته
اگر کد قبلی برایتان عمل نکرد و همچنان سایتتان با پروتکل HTTP در درسترس است، بجای کد بالا از این کد استفاده کنید:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
حالت سوم / کمی پیشرفته اما متفاوت!
اگر کد قبلی هم کارساز نبود، از این کد استفاده کنید:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
حالت چهارم: همراه با WWW
اگر وب سایت شما با حالت www هم در دسترس است و قصد دارید در نسخه www هم کاربران بطور خودکار به HTTPS منتقل شوند، از این کد استفاده کنید:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
حالت پنجم: همراه با آدرس سایت
در برخی از سرورها شاید کدهای قبلی کار نکند (این احتمال بسیار کم است) اما اگر کدهای قبلی عمل نکرد، می توانید بجای کدهای قبلی، از کدی استفاده کنید که آدرس سایت را دقیقا بتوانید داخل کد مشخص کنید. بنابراین آدرس سایت خود را در کد زیر جایگزین کنید و سپس داخل فایل .htaccess
قرار دهید:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
توجه کنید که حتما بجای example
نام دامین و بجای com
پسوند دامین را وارد کنید.