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

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

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

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

 

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

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

 ریدایرکت ترافیک HTTP به HTTPS به کمک 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 را با نام دامنه واقعی خود جایگزین نمایید.

۲ نظر

  1. سلام وب سرور من nginx کد رو قرار میدم internal server error میده چرا؟

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*