IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Redirection si HTTPS est sur "on"


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut Redirection si HTTPS est sur "on"
    voila mon probleme , je souhaite faire une redirection vers une page sécurisée si dans la page demandée si $_SERVER['HTTPS']="on"
    voici mon ficher de conf du hote virtuel en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <VirtualHost *:80>
    	ServerAdmin webmaster@monsite.com
    	DocumentRoot /home/Sites/monsite/www/
    	ServerName monsite.dev
    	ServerAlias dev.monsite
    	ErrorLog /home/Sites/monsite/logs/error_log
    	CustomLog /home/Sites/monsite/logs/access_log common
    	RewriteEngine on
    	RewriteRule ^/([a-z]{2})/([^/]*)/([^/]*)?$  /index.php?wlang=$1&wpage=$2 [L,QSA]
    	RewriteRule ^/([a-z]{2})/([^/]*)/([^/]*)/([^/]*)?$  /index.php?wlang=$1&wpage=$2&param=$3 [L,QSA]
    	RewriteCond %{HTTPS} !^on$
    	RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
    	<Directory "/home/Sites/monsite/www">
    		AllowOverride None
    		Order allow,deny
    		Allow from all
    	</Directory>
    		AddDefaultCharset UTF-8
    </VirtualHost>
    à part la partie rouge tout est fonctionnel.
    dans mon index.php je ferai un if qui en fonction de la page cliquée il definit HTTPS sur "on" ou sur "off".
    toutes mes pages sont construites à partir de l'index et les templates et smarty correspondants.

    merci.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Ça ne marche pas comme ça : PHP n'a aucune influence sur Apache et il ne faut pas oublier que c'est Apache qui invoque le script et non l'inverse.

    D'autant plus que c'est le module ssl justement qui gère la variable HTTPS.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut
    alors tu a une idée de comment resoudre ce probleme autrement que de definir la variable HTTPS sur "on"?
    parce que j'ai chercher partout mais je n'ai rien trouvé de concret et surtout en rapport avec la conception de mon site

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Tout était réécrit en https ?

    Effectuer la redirection en PHP via l'index ? Définir une(des) condition(s) permettant de différencier directement ces cas par la réécriture ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut
    mon but c'est d'avoir deux repertoire differents , un pour le http et un autre pour le https , et pouvoir basculer entre les deux quand je veux une page sécurisée il va la chercher dans le repertoire qu'il faut, je ne veux pas tomber sur la page en modifiant l'url en enlevant le "s" du https , comme j'ai pu definir deux repertoire si on enleve le "s" il va alors chercher dans le repertoire du http mais il ne va pas trouver la page puisque les templates qui la constitue se trouve uniquement dans le repertoire du https.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Si on peut forcer le passage en https, on peut faire l'inverse.

    Le fait que les pages aient des répertoires différents ne permettait-il pas justement d'effectuer ce test ? La réécriture offre bien des options pour cela mais est certainement trop limitée pour convenir. On en reviendrait donc à PHP.

    Schématiquement :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    define('PAGE_DEFAUT', 'default');
     
    $page = isset($_GET['wpage']) && preg_match('/^[[:alpha:]]+$/D', $_GET['wpage']) ? $_GET['wpage'] : PAGE_DEFAUT;
    $https = isset($_SERVER['HTTPS']) && !strcasecmp($_SERVER['HTTPS'], 'on');
     
    function redirect($https_wanted = FALSE) {
        $url = ($https_wanted ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
        if ($_GET) {
            $url .= '?' . $_SERVER['QUERY_STRING'];
        }
        header('Location: ' . $url);
        exit;
    }
     
    if (is_file('../templates/https/' . $page . '.tpl')) {
        if (!$https) {
            redirect(TRUE/*!$https*/);
        }
    } else {
        if (!is_file('../templates/http/' . $page . '.tpl')) {
            $page = PAGE_DEFAUT;
        }
        if ($https) {
            redirect(/*!$https*/);
        }
    }
     
    # Génération de la page

Discussions similaires

  1. [Quote] DVP quoté sur Bashfr
    Par Skyounet dans le forum La taverne du Club : Humour et divers
    Réponses: 16
    Dernier message: 26/09/2006, 18h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo