[RESOLU] http vers https quand on a un certificat SSL

Avatar du membre
Mammouth du PHP | 1564 Messages

03 juil. 2012, 21:01

Bonjour,

je souhaiterai vérifier si mon site possède un certificat SSL (ce que j'ai) mais ma fonction ne fonctionne pas :mrgreen: :
function http_s() {
	$proto_https = "http".((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://";
    return $proto_https;
}
la fonction affiche https que site on tape l'adresse avec https, si on tape que http, la fonction ne sais pas que le site à un certificat

mon site: publi81.fr (vous pouvez ajouter la variable ?tps à l'adresse du site pour avoir les info de la variable $_SERVER['HTTPS'], $_SERVER['SERVER_PORT'] et de ma fonction).

Merci pour votre éventuelle réponse

ViPHP
xTG
ViPHP | 7331 Messages

03 juil. 2012, 21:56

Ce n'est pas la vérification du certificat, mais l'état de la requête reçue par le serveur que tu trouves dans $_SERVER.
Donc si l'utilisateur demande du https la requête contient ce paramètre et ce même si le serveur ne peut lui retourner de certificat et une connexion sécurisée.
Il n'y a pas moyen de savoir si un certificat est installé ou non à moins d'avoir une API de ton hébergeur te donnant l'information.

Avatar du membre
Mammouth du PHP | 1564 Messages

03 juil. 2012, 22:21

Merci pour l'info et ta réponse

tu serai comment faire pour demander à htaccess de me rediriger le site http vers https stp ?

ViPHP
xTG
ViPHP | 7331 Messages

04 juil. 2012, 11:01

On en trouve à foison sur le net.
En voici un : http://joseph.randomnetworks.com/2004/0 ... -htaccess/

Avatar du membre
Mammouth du PHP | 1564 Messages

04 juil. 2012, 13:24

Merci

Avatar du membre
Mammouth du PHP | 1564 Messages

04 juil. 2012, 15:02

Je n'arrive pas à faire concorder deux RewriteCond dans mon .htaccess

Voici mon fichier .htaccess:

Code : Tout sélectionner

Options -Indexes Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} !^www\. [OR] RewriteCond %{SERVER_PORT} !443 RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
quand je tape l'adresse "publi81.fr" c'est niquel, ça me renvoi vers https + www.
mais quand je tape "www.publi81.fr" ça me renvoi vers "https://www.www.publi81.fr/"

Une solution est envisageable ?

Avatar du membre
Mammouth du PHP | 1564 Messages

26 juil. 2012, 16:12

J'ai trouver la solution:

Code : Tout sélectionner

RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://www.example.com/$1 [R]