Mes serveurs Apache sont derrière un ALB/ELB. Je termine SSL sur l'équilibreur de charge. L'équilibreur de charge écoute à la fois sur 80 et 443. Je veux rediriger toutes les demandes http vers https.
J'ai cette règle de réécriture en place dans la configuration vhost:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
Cela fonctionne, mais le problème est que j'ai également des redirections dans un fichier htaccess. Lorsqu'une redirection se produit via le fichier htaccess, elle redirige d'abord vers http, puis la redirection de configuration vhost la prend et redirige vers https. Je veux éliminer la redirection http supplémentaire.
http://mysite.example.com/sub 301 https://mysite.example.com/sub 301 http: //mysite.example. com/newsub - cette redirection est htaccess 301 https://mysite.example.com/newsub 200
Je voudrais me déplacer avec grâce en ayant d'abord la redirection htaccess vers http. Je peux contourner cela en ajoutant https: //% {HTTP: Host} pour réécrire les règles. Est-ce la meilleure façon de procéder:
RewriteRule ^sub$ https://%{HTTP:Host}/newsub [R=301,L]
Application Load Balancer prend désormais en charge deux nouvelles actions: redirection et réponse fixe. Vous pouvez configurer ces actions dans le cadre des règles de routage basées sur le contenu, ce qui vous permet de décharger cette fonctionnalité sur l'équilibreur de charge. Cela simplifie les déploiements tout en bénéficiant de l'échelle, de la disponibilité et de la fiabilité d'Elastic Load Balancing.
Voici ce que j'ai fait pour que cela fonctionne sur AWS:
Exemple de configuration pour la redirection ALB - HTTP -> HTTPS
Si vos serveurs Web s'exécutent derrière un AWS Application Load Balancer et que vous avez configuré au moins un écouteur pour le port HTTP 80, vous pouvez rediriger http vers https directement par Ce faisant:
J'espère que ça aide!