151 votes

.htaccess rediriger http vers https

J'ai une ancienne url ( www1.test.net ) et je voudrais la rediriger vers https://www1.test.net
J'ai mis en œuvre et installé notre certificat SSL sur mon site.
Voici mon ancien fichier .htaccess :

RewriteEngine On
RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]

Comment puis-je configurer mon .htaccess pour que l'url redirige automatiquement vers https ?
Merci !

6voto

Eneko Alonso Points 2970

Dans les cas où la connexion HTTPS/SSL est terminée au niveau de l'équilibreur de charge et que tout le trafic est envoyé aux instances sur le port 80, la règle suivante fonctionne pour rediriger le trafic non sécurisé.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Assurez-vous que le mod_rewrite est chargé.

5voto

LIIT Points 111

En cherchant la meilleure façon de rediriger, j'ai trouvé ceci (provenant de html5boilerplate) :

# ----------------------------------------------------------------------
# | HTTP Strict Transport Security (HSTS)                              |
# ----------------------------------------------------------------------

# Force client-side SSL redirection.
#
# If a user types `example.com` in their browser, even if the server
# redirects them to the secure version of the website, that still leaves
# a window of opportunity (the initial HTTP connection) for an attacker
# to downgrade or redirect the request.
#
# The following header ensures that browser will ONLY connect to your
# server via HTTPS, regardless of what the users type in the browser's
# address bar.
#
# (!) Remove the `includeSubDomains` optional directive if the website's
# subdomains are not using HTTPS.
#
# http://www.html5rocks.com/en/tutorials/security/transport-layer-security/
# https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14#section-6.1
# http://blogs.msdn.com/b/ieinternals/archive/2014/08/18/hsts-strict-transport-security-attacks-mitigations-deployment-https.aspx

Header set Strict-Transport-Security "max-age=16070400; includeSubDomains"

Peut-être que cela aidera quelqu'un en 2017 ! :)

5voto

Pallavi Points 51

Insérez ce code dans votre fichier .htaccess. Et cela devrait fonctionner

RewriteCond %{HTTP_HOST} yourDomainName\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yourDomainName.com/$1 [R,L]

4voto

flightwusel Points 1

Cela permet de s'assurer que les redirections fonctionnent pour toutes les combinaisons de proxies intransparents.

Cela inclut l'affaire client <http>proxy <https> serveur web .

# behind proxy
RewriteCond %{HTTP:X-FORWARDED-PROTO} ^http$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

# plain
RewriteCond %{HTTP:X-FORWARDED-PROTO} ^$
RewriteCond %{REQUEST_SCHEME} ^http$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

3voto

Murad Points 61

Utilisez le code suivant ou vous pouvez lire plus en détail sur ce sujet. Comment rediriger HTTP vers HTTPS en utilisant .htaccess ?

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

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