redirection http vers https apache

Environnement Centos avec apache

Essayer de configurer la redirection automatique de http vers https

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

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

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

Des idées?

122
demandé sur Deano 2013-04-24 23:23:52

8 réponses

J'ai effectivement suivi cet exemple, et cela a fonctionné pour moi :)

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName mysite.example.com
   DocumentRoot /usr/local/apache2/htdocs 
   Redirect permanent / https://mysite.example.com/
</VirtualHost>

<VirtualHost _default_:443>
   ServerName mysite.example.com
  DocumentRoot /usr/local/apache2/htdocs
  SSLEngine On
 # etc...
</VirtualHost>

Alors faites:

/etc/init.d/httpd restart

178
répondu Deano 2015-01-14 11:47:23
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

Http://www.sslshopper.com/apache-redirect-http-to-https.html

Ou

Http://www.cyberciti.biz/tips/howto-apache-force-https-secure-connections.html

98
répondu IdemeNaHavaj 2014-05-18 11:32:55

Cherché apache redirect http to https et a atterri ici. C'est ce que j'ai fait sur ubuntu:

1) Activer les modules

sudo a2enmod rewrite
sudo a2enmod ssl

2) Modifier la configuration de votre site

Modifier le fichier

/etc/apache2/sites-available/000-default.conf

Le contenu doit être:

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile    <path to your crt file>
    SSLCertificateKeyFile   <path to your private key file>

    # Rest of your site config
    # ...
</VirtualHost>

3) Redémarrer apache2

sudo service apache2 restart
73
répondu Jossef Harush 2016-05-31 11:27:31

En Fait, votre sujet est appartient à https://serverfault.com/, mais vous pouvez toujours essayer de vérifier ces .htaccess directives:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1
9
répondu 5ervant 2017-04-13 12:13:50

L'utilisation de mod_rewrite n'est pas la méthode recommandée pour utiliser l'hôte virtuel et la redirection.

Au cas où, si vous êtes enclin à faire en utilisant mod_rewrite:

RewriteEngine On
# This will enable the Rewrite capabilities

RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same 
location but using HTTPS.
# i.e.  http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in
# httpd.conf or .htaccess context

Référence: Httpd Wiki-RewriteHTTPToHTTPS

Si vous recherchez une redirection permanente 301, alors l'indicateur de redirection devrait être as,

 R=301

Donc la RewriteRule sera comme,

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
7
répondu Vincy 2017-11-15 08:16:42

Si vous avez Apache2. 4 Vérifier 000-default.conf - Supprimer DocumentRoot et ajouter

Redirect permanent / https://[your-domain]/
2
répondu indifference 2018-01-27 23:13:17

Cela a fonctionné pour moi:

RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]
1
répondu Fint 2016-04-05 07:41:43

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]

1
répondu user7817632 2017-04-05 01:53:32