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 partiel HTTPS vers HTTP avec virtualhost


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut Redirection partiel HTTPS vers HTTP avec virtualhost
    Bonjour,

    J'ai un serveur qui désert plusieurs sous-domaines (avec Drupal) sous une même adresse IP et un certificat SSL "blank". Tout accès en HTTP est rediriger vers HTTPS. Le problème est que je dois rediriger 1 des sous domaines vers une page HTML statique.

    ex.:
    http://a.example.com redirigé vers https://a.example.com
    http://b.example.com redirigé vers https://b.example.com
    http://c.example.com redirigé vers https://c.example.com

    Je peux supprimez la redirection HTTP vers HTTPS de c.example.com et faire pointer un page HTML statique mais la redirection https://c.example.com vers cette même page statique pose un problème.

    Voici un extrait de httpd.conf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    NameVirtualHost *:80
     
    <VirtualHost *:80>
       ServerName c.example.com
       DocumentRoot /var/www/c
    </VirtualHost>
     
    <VirtualHost *:80>
       ServerName nomDuServeur
       ServerAlias *.example.com
       DocumentRoot "/var/www/drupal"
    et de ssl.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <VirtualHost nomDuServeur:443>
       ServerName a.example.com
       ServerAlias *.example.com
     
       RewriteEngine on
       RewriteCond %{HTTPS} on
       RewriteCond %{HTTP_HOST} c.example.com
       RewriteRule c.example.com http://c.example.com [R=301]
    si je vais à https://c.example.com, je vais à la page générée par Drupal en https.

    J'ai essayé de mettre un NameVirtualHost dans le fichier ssl.conf comme pour le fichier httpd.conf mais j'ai une erreur qui me dit qu'il y a duplication et que seul le premier VirtualHost sera considéré.

    Est-ce qu'il y a moyen de faire en sorte que toute appel de https://c.example.com soit dirigée vers la page statique (soit via une redirection vers http, soit directement)?

    Merci

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    C'est quoi "une page HTML statique" ? Tu en parles souvent mais sans nous la montrer ou nous dire sur quelle URL elle est accessible. Alors c'est assez difficile de dire comment faire pour rediriger ton site dessus.

    Ceci dit, je vois un problème avec la dernière règle que tu donnes en exemple de ssl.conf : RewriteRule c.example.com ne matchera jamais rien sauf à mettre dans le chemin (par exemple : https://c.example.com/xxx/c.example.com). Donc si tu penses faire une redirection sur cette règle, ça ne marchera pas. Et même si ça marchait, ton navigateur bouclerait sur les redirections http://c... => https://c... => http://c... => https://c... etc. A mon avis, il faut procéder autrement. Le moyen le plus simple serait de "diriger directement vers la page statique" mais comme on ne sait pas ce que c'est...

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    Bonjour,

    désolé pour le manque de clarté, la page statique est un simple fichier index.html. L'accès via http://c.example.com dirige directement au répertoire dans lequel ce fichier est inclus. Cette partie fonctionne, il n'y a pas de redirection vers https://c.example.com comme pour les autres sous-domaines. Le chemin complet pour y accéder est http://c.example.com, il n'y a pas de d'autre URL tel que http://c.example.com/xyz.

    J'ai bien essayé de configurer dans ssl.conf, un NameVirtualHost afin de diriger https://c.example.com avec un DocumentRoot vers le répertoire /var/www/c contenant le fichier index.html mais je n'ai pas plus de succès que pour la redirection vers http://c.example.com. Apache générè une erreur, il n'aime pas avoir la configuration suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    NameVirtualHost nomDuServeur:443
    <VirtualHost nomDuServeur:443>
    DocumentRoot /var/www/c
    ServerName c.example.com
    </VirtualHost> 
     
    <VirtualHost nomDuServeur:443>
    DocumentRoot /var/www/drupal
    ServerName a.example.com
    ServerAlias *.example.com
    </VirtualHost>
    Je pourrais toujours inclure l'ensemble des ServeurAlias plutôt que d'utiliser l'astérisque mais il y en a plus d'une centaine . N'y a-t-il pas un moyen plus court?

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Maintenant c'est plus clair, merci. Les hôtes virtuels nommés en SSL, c'est compliqué. Le plus simple, c'est de partir sur ce que tu as indiqué dans ton premier message mais en le simplifiant : tu gardes les RewriteCond mais la réécriture RewriteRule est ramenée au plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule .* http://c.example.com/ [R=301]

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    désolé mais en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule .* http://c.example.com/ [R=301]
    Tous les sous-domaines serait redirigés alors que je ne veux que seul c.example.com soit redirigé.

    Après plusieurs tentative, je crois que la seule solution est de demander une adresse IP différente pour c.example.com et ainsi pouvoir l'attraper différemment.

    merci d'avoir tenté de m'aider.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    J'ai finalement trouvé comment. Je dois utiliser les NameVirtualHost et ne pas utilisé l'astérisque dans les alias mais plutôt lister l'ensemble des sous-domaines dans les alias. Il est temps de scripter l'ajout des ces alias (une centaine! :-(

    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
    NameVirtualHost *:443
     
    <VirtualHost *:443>
       ServerName c.example.com
       DocumentRoot /var/www/c
       ...
    </VirtualHost>
     
    <VirtualHost *:443>
       ServerName nomDuServeur
       ServerAlias a.example.com
       ServerAlias b.example.com
       ServerAlias d.example.com
       ServerAlias e.example.com
       ServerAlias f.example.com
       ...
       DocumentRoot "/var/www/drupal"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c#]Redirection automatique http vers https
    Par Filippo dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/12/2009, 09h57
  2. Réponses: 2
    Dernier message: 22/08/2008, 17h03
  3. Réponses: 2
    Dernier message: 19/06/2008, 15h49
  4. Réponses: 1
    Dernier message: 19/12/2007, 16h32
  5. Redirection http vers https
    Par valou7518 dans le forum Apache
    Réponses: 1
    Dernier message: 13/12/2006, 16h59

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