web-dev-qa-db-fra.com

Rediriger les sous-domaines http: // vers https: // - trop de redirections

J'essaie de rediriger http://sub.domain.com vers https://sub.domain.com.

J'ai mis le Web à l'envers en essayant chaque script .htaccess et PHP, et tous me donnent l'erreur "Trop de redirections".

Je ne cherche pas tellement une solution, j'ai plutôt renoncé à cela.

Ce que je me demande pourquoi je reçois l'erreur? Qu'est-ce que l'erreur signifie réellement? Autant que je sache, tous les scripts que j'ai essayés ne redirigent jamais une fois.

1
Josh N

le problème "Trop de redirections" vient du fait que les redirections sont liées. Par exemple, http://example.com redirige vers https://example.com et https://example.com redirige en arrière à http://example.com .

Ce processus peut se répéter encore et encore jusqu'à ce que le nombre de redirections établi par le serveur soit atteint, puis lorsqu'il est dépassé, le serveur cesse alors d'essayer de traiter les redirections.

Dans Apache, cela peut être découvert en consultant le message "cette page peut être trouvée ici" à l'écran (qui est une page de redirection réelle) au lieu de la redirection automatique en arrière-plan que le navigateur traite.

Ce que je vous suggérerais de faire lors du test de vos scripts, est de les rendre non cachables pour obtenir les résultats actuels à chaque fois. Vous devez également vérifier que l'utilisateur demande la version HTTPS du site et n'effectuez la redirection que si la demande n'est pas HTTPS. Une façon de vérifier consiste à valider le numéro de port du serveur auquel l'utilisateur se connecte. Si le numéro de port est 80, effectuez la redirection pour l'utilisateur car le port 80 est HTTP.

Une autre chose utile est de désactiver les redirections automatiques dans votre navigateur tout en testant vos pages.

Si cela n'est pas possible, utilisez redbot.org et indiquez l'URL à l'origine du problème, puis vous verrez quelle est la nouvelle URL sous "Emplacement:" dans les en-têtes HTTP. Continuez à suivre l'URL jusqu'à ce que vous ne voyiez plus la valeur "Emplacement:". Si vous ne pouvez pas, alors vous avez une redirection sans fin.

2
Mike

Voir ce qui suit dans CloudFlare: Comment puis-je corriger l'erreur de boucle de redirection infinie après avoir activé Flexible SSL avec WordPress?


Certains utilisateurs peuvent rencontrer des boucles de redirection après avoir activé l’option gratuite Universal Flexible SSL de CloudFlare. Afin de résoudre ce problème et/ou d’organiser vos tâches, veuillez suivre les étapes décrites ci-dessous: **

Site WordPress

** 1. Installez soit le plugin CloudFlare Flexible SSL WordPress, soit le plugin WordPress HTTPS. De nombreux utilisateurs WordPress utilisent ces plug-ins pour résoudre les problèmes de boucle de redirection dans WordPress et pour faciliter la transition vers https://.

Remarque: Ces plugins n'ont pas été créés par CloudFlare.com

  1. Installez le plugin CloudFlare WordPress pour vous assurer que l'adresse IP du visiteur d'origine est bien retransmise au niveau WordPress. Comme il est probable que certains de vos autres plug-ins se fient à l’adresse IP des visiteurs d’origine, l’installation du plug-in CloudFlare WordPress restaure les adresses IP des visiteurs au niveau WordPress sans afficher les adresses IP de CloudFlare.

Autres sites

1.Accédez à votre site Web sur https:// pour voir si votre site Web se charge. Étant donné que le domaine n’avait pas été configuré pour utiliser SSL avant d’activer Universal SSL, il est probable que vous obtiendrez un avertissement d’erreur de contenu mixte lorsque vous regarderez dans le coin de la fenêtre de votre navigateur. Pour que cette erreur disparaisse, vous devez parcourir votre site et vous assurer que les éléments d'actif sont chargés via HTTPS et non HTTP. Des solutions peuvent être trouvées à:

Tutoriel de Mozilla sur la correction des erreurs de contenu mixte

WordPress Plugin: Fixateur de contenu non sécurisé SSL

  1. Créez une règle de page avec l'action Toujours utiliser HTTPS pour le modèle **http://*example.com/***, en remplaçant exemple.com par votre domaine pour rediriger toutes les demandes HTTP vers HTTPS sur notre Edge.

  2. Si l'erreur persiste, assurez-vous qu'aucune redirection n'a été créée sur votre serveur Origin. Avec WordPress , ceux-ci seront généralement créés dans le fichier ".htaccess". Si vous utilisez la règle de page ci-dessus, supprimez tout code de redirection ici pour empêcher toute boucle infinie. Sinon, si vous préférez utiliser la redirection implémentée sur votre serveur plutôt que la règle de page, le code de redirection devra peut-être utiliser l'en-tête "X-Forwarded-Proto" qui vérifie le protocole envoyé par le visiteur. Le code lui-même ressemblerait à ceci:

    RewriteCond% {HTTP: X-Forwarded-Proto} = http

RewriteRule ^ https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] .

2
Abrar Ahmed