URL rewriting, HTTPS et redirection en boucle

Bonjour,

J’ai une erreur de redirection en boucle…

Voici la règle écrite dans le .htaccess :

[code]# activation de la réécriture d’URL
RewriteEngine on

si on n’est pas en HTTPS…

RewriteCond %{REMOTE_ADDR} !194.36.166.10$ [OR]

… ou si le domaine n’est pas example.com

RewriteCond %{SERVER_NAME} !^example.com$ [NC]

…alors on redirige vers example.com en HTTPS

RewriteRule ^(.*)$ https://example.com/ [QSA,R=301,L][/code]

(Note : chez Ouvaton, Apache détecte le HTTPS avec %{REMOTE_ADDR} et non %{SERVER_PORT}.)

Cette règle entraîne ces redirections :
[list=*]
]http://example.com/https://example.com/ : OK/]
]http://www.example.com/https://example.com/ : OK/]
]https://example.com/ : OK (pas de redirection)/]
]https://www.example.com/https://www.example.com/https://www.example.com/ → etc. : redirections 301 en boucle/]
[/list]

Version simplifiée qui ne fonctionne pas non plus comme j’aimerais :

RewriteEngine on RewriteCond %{SERVER_NAME} !^example\.com$ [NC] RewriteRule ^(.*)$ http://example.com/ [QSA,R=301,L]

Ça fait que :
[list=*]
]http://www.example.com/http://example.com/ : OK/]
]mais https://www.example.com/ → tourne en boucle/]
[/list]

Quelqu’un peut-il m’aider à trouver l’erreur ?

Bonjour,

J’ai le même problème avec un autre site utilisant HTTPS. Je le signale à notre infogérant.

Cordialement,

Je serais ravi de connaître sa réponse.

Bonjour,

On avance avec l’aide de notre infogérant. :slight_smile:
Il y avait un problème avec notre reverse proxy.

Vous pouvez utiliser les règles ci-dessous pour rediriger systématiquement vers non-www en https:// :

# Redirect to HTTPS sans IP
RewriteCond %{HTTP_HOST} www.domaine.tld
RewriteRule (.*) http://domaine.tld/$1 [QSA,L,R=301]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Il doit y avoir possibilité de réduire le nombre de règles. Je vais essayer de regarder dans la semaine.

Cordialement,

Merci !

Bonjour,

Mon site tourne sur SPIP (3.0.20) et je souhaitais qu’il soit accessible uniquement en https et sans “www” devant le nom de domaine. Les règles de réécriture proposées par Matthieu permettaient bien de rediriger les visiteurs tel que je le souhaitais, mais les redirections après connexion à l’espace privé n’étaient pas bonnes et je ne pouvais plus modifier les articles, les sites référencés, etc. De plus, il m’était impossible de vider le cache autrement qu’en passant par ftp et l’activation ou la désactivation des plugins était chaotique.

J’ai résolu tous ces problèmes en ajoutant deux variables dans mon fichier mes_options.php, situé dans le dossier /config :
$_SERVER"HTTPS"]=“on”;
$_SERVER’SERVER_PORT’]=‘443’;

Si les tâches planifiées (cron) ne fonctionnent pas ou ralentissent le site, vous pouvez également ajouter deux autres variables dans le même fichier (voir sur le site de SPIP les variables de personnalisation dans le fichier mes_options.php pour plus de détails) :
define(’_DIRECT_CRON_FORCE’, true);
define(’_HTML_BG_CRON_FORCE’, true);

Voilà, en espérant que cela pourra servir à d’autres coopérateurs/trices ! :wink:

Cordialement,

Christophe Ancelin

Bonjour,

Merci pour ce retour. :slight_smile:

Cordialement,

Bonjour,

J’ai passé notre site suivant les instructions de votre tutorial.
Un outil de test SSL en ligne m’indique ceci :

https://www.monsite.fr/ redirects to https://monsite.fr/ through a redirect chain. This hurts your rankings
https://www.monsite.fr/http://monsite.fr/https://monsite.fr/
http://www.monsite.fr/ redirects to https://monsite.fr/ through a redirect chain. This hurts your rankings
http://www.monsite.fr/http://monsite.fr/https://monsite.fr/

Y a-t-il effectivement un système de redirection à améliorer ?

Merci.

Bonjour,

Possiblement, mais je ne trouve pas de solution satisfaisante pour le faire.