231 votes

Comment rediriger automatiquement HTTP vers HTTPS sur les serveurs Apache ?

Environnement Centos avec apache

Essayer de configurer une redirection automatique de http à https

From manage.mydomain.com --- To ---> https://manage.mydomain.com 

J'ai essayé d'ajouter ce qui suit à mon httpd.conf mais cela n'a pas fonctionné.

 RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

Des idées ?

9voto

indifference Points 91

Si vous avez Apache2.4, vérifiez 000-default.conf - retirer DocumentRoot et ajouter

Redirect permanent / https://[your-domain]/

8voto

Smac89 Points 1926

J'en avais besoin pour quelque chose d'aussi simple que de rediriger toutes les http le trafic de la page d'accueil apache par défaut sur mon serveur vers une page servie sur https .

Comme je suis encore assez vert lorsqu'il s'agit de configurer apache, je préfère éviter d'utiliser mod_rewrite et j'ai préféré opter pour quelque chose de plus simple comme ceci :

<VirtualHost *:80>
  <Location "/">
     Redirect permanent "https://%{HTTP_HOST}%{REQUEST_URI}"
  </Location>
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot "/var/www/html"
  SSLEngine on
  ...
</VirtualHost>

J'aime cette méthode parce qu'elle me permet d'utiliser les variables apache, ce qui m'évite d'avoir à spécifier le nom d'hôte réel puisqu'il s'agit simplement d'une adresse IP sans nom de domaine associé.

Références : https://stackoverflow.com/a/40291044/2089675

7voto

user7817632 Points 71

Ce code fonctionne pour moi.

# ----------port 80----------
RewriteEngine on
# redirect http non-www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

# redirect http www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

# ----------port 443----------
RewriteEngine on
# redirect https non-www to https www
RewriteCond %{SERVER_NAME} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

5voto

DimiDak Points 515

Version du serveur : Apache/2.4.29 (Ubuntu)

Après de longues recherches sur le web et dans la documentation officielle d'apache, la seule solution qui a fonctionné pour moi provient de /usr/share/doc/apache2/README.Debian.gz

To enable SSL, type (as user root):

    a2ensite default-ssl
    a2enmod ssl

Dans le fichier /etc/apache2/sites-available/000-default.conf, ajoutez l'élément suivant

Rediriger "/" " https://sub.domain.com/ "

<VirtualHost *:80>

    #ServerName www.example.com
    DocumentRoot /var/www/owncloud
    Redirect "/" "https://sub.domain.com/"

C'est tout.


P.S : Si vous voulez lire le manuel sans extraire :

gunzip -cd /usr/share/doc/apache2/README.Debian.gz

4voto

MD IRFAN Points 81

Veuillez essayer celui-ci dans la configuration de l'hébergement virtuel d'apache. puis rechargez le service apache

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X