مدیریت سرورمقالات وب

چگونه در آپاچی و Nginx، ترافیک HTTP را به HTTPS ریدایرکت کنیم؟

در این مقاله به شما نشان خواهیم داد که چگونه می توانید HTTP را به HTTPS در آپاچی و Nginx ریدایرکت کنید.  برای محافظت از سایت خود باید همیشه از HTTPS استفاده کنید حتی اگر داده های حساسی را مدیریت نمی کنید. در این مقاله همراه وب ایده باشید تا این موضوع را با هم مرور کنیم.

دلایل استفاده از HTTPS در برگیرنده موارد زیر است:

 

  • امنیت: این گزینه یکی از مهم ترین و اصلی ترین دلایل استفاده از HTTPS است. همه ارتباطات بین  مرورگر بازدیدکننده و سایت رمزگذاری می شوند.
  • سئو: از HTTPS به سیگنال رتبه بندی استفاده می کند. این موضوع بدین معنی است که اگر سایت شما از HTTPS استفاده کند رتبه بندی بهتری در نتایج گوگل خواهد داشت.
  • هشدارهای مرورگر: اگر از HTTPS استفاده نمی کنید در مرورگر خود پیام هشداری مبنی بر امن نبودن سایت دریافت می کند.
  • قابل بودن: افراد معمولا به سایت هایی که گواهینامه SSL دارند بیشتر اعتماد می کنند.

برای استفاده کردن از HTTPS به گواهینامه SSL نیاز خواهید داشت . شما می توانید این گواهینامه را از سایت ما دریافت کنید. برای کسب اطلاعات بیشتر به این لینک مراجعه نمایید.

  به کمک mod_rewrite آپاچی:

برای انتقال خودکار تمامی بازدیدکننده ها به نسخه HTTPS سایت، کد زیر را به  .htaccess خود اضافه کنید:

RewriteEngine On

# redirect http to https

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

اگر می خواهید تمامی بازدیدکنندگان را به نسخه بدون WWW سایت خود ( با HTTPS) ارسال کنید از کد زیر استفاده نمایید:

RewriteEngine On

# redirect all www to https non-www

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

# redirect http non-www to https non-www

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

برای هدایت تمامی بازدیدکنندگان به نسخه HTTPS WWW سایت خود می توانید از کد زیر بهره مند شوید:

RewriteEngine On

# redirect all non-www to https www

RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]

RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]

# redirect http www to https www

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ریدایرکت ترافیک HTTP به HTTPS با Nginx:

ما باید سه بلوک یکی برای HTTP، یکی برای HTTPS بدون www و یکی برای HTTPS با WWW ایجاد کنیم. اولین بلوک سرور تمامی بازدیدکنندگان ی به سایت را از طریق HTTP به  HTTPS هدایت می کند و دو بلوک دیگر بازدیدکننده ورودی به سایت را از طریق WWW  به نسخه بدون WWW و بالعکس هدایت می نماید. برای ریدایرکت کردن تمامی ترافیک ها به HTTPS با www، از کد زیر استفاده کنید:

server {

  listen [::]:80;

  listen 80;

  server_name yourdomain.com www.yourdomain.com;

  # redirect http to https www

  return 301 https://www.yourdomain.com$request_uri;

}

server {

  listen [::]:443 ssl http2;

  listen 443 ssl http2;

  server_name yourdomain.com;

  # SSL code

  # redirect https non-www to https www

  return 301 https://www.yourdomain.com$request_uri;

}

server {

  listen [::]:443 ssl http2;

  listen 443 ssl http2;

  server_name www.yourdomain.com;

  # SSL code

  # other code

}

 برای ریدایرکت کردن تمامی ترافیک های HTTP و HTTPS WWW به HTTPS بدون www از کد زیر بهره مند شوید:

server {

  listen [::]:80;

  listen 80

  server_name yourdomain.com www.yourdomain.com;

  # redirect http to https non-www

  return 301 https://yourdomain.com$request_uri;

}

server {

  listen [::]:443 ssl http2;

  listen 443 ssl http2;

  server_name www.yourdomain.com;

  # SSL code

  # redirect https non-www to https www

  return 301 https://yourdomain.com$request_uri;

}

server {

listen [::]:443 ssl http2;

listen 443 ssl http2;

  server_name yourdomain.com;

  # SSL code

  # Other code

}

فقط فراموش نکنید که باید عبارت yourdomain.com را با نام دامنه واقعی خود جایگزین نمایید.

Rate this post
برچسب ها

نوشته های مشابه

‫۳ نظرها

    1. سلام،
      دلایل زیادی میتونه داشته باشه، بهترین راه اینه که لاگ ها رو بررسی کنید یا نمونه کدتون رو قرار بدین

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن