Redirect de pe HTTP pe HTTPS (ssl) in PHP

postat acum 2 ani de Stefanescu Mihai in categorie iNoob

Majoritatea platformelor e-commerce folosesc gateway-uri de plata online, iar acestea folosesc conexiuni SSL (secure socket layer) pentru a transfera informatiile.

In acest scenariu, chiar daca majoritatea siteurilor folosesc protocolul HTTP, putem folosi protocolul HTTPS, ceea ce inseamna ca trebuie sa redirectionam toti userii catre adreasa site-ului folosind protocolul acesta.

Pentru a intelege la ce ma refer, puteti scrie http://www.gmail.com in browser si se poate observa ca sunteti redirectionati automat catre protocolul https.

Redirect catre protocolul https in PHP

In primul rand trebuie sa stii ca SSL-ul trebuie instalat pe server. Pentru a redirectiona utilizatorii catre acest protocol trebuie sa stim daca site-ul foloseste sau nu SSL. Pentru a afla asta PHP ne pune la dispozitie o variabila $_SERVER[‘HTTPS’] ce returneaza ‘on’ in cazul in care avem SSL.

function redirectToHTTPS()
{
  if($_SERVER['HTTPS']!="on")
  {
     $redirect= "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
     header("Location:$redirect");
  }
}

Functia de mai sus este destul de simpla, nu trebuie decat sa o apelezi pe pagina dorita.

Redirecting catre HTTPS folosind .htaccess

Puteti folosi functia de mai sus pe fiecare pagina, dar mai simplu ar fi sa scrieti urmatoarele linii de cod in fisierul .htaccess.

  RewriteEngine On
  RewriteCond %{HTTPS} !on
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Doar copiati codul acesta in fisierul .htaccess si utilizatorii sunt redirectionati pe protocolul HTTPS

Sunt un tanar programator din Bucuresti ce lucreaza in PHP/Mysql (MySqli/PDO), Laravel, CodeIgniter, MySQL, PostgreSQL, Wordpress, HTML5/CSS3, Sass, Photoshop si multe altele.
Google+ Community Facebook Group
Acest articol a fost mutat de pe vechea platforma.
Pentru orice eroare aparuta la mutare va rog sa ma contactati!