web-dev-qa-db-fra.com

https redirect (with .htaccess) boucle de redirection

Il y a pas mal de discussions à ce sujet mais ils semblent tous dire la même chose (ce que j'ai essayé) mais je continue à avoir une boucle de redirection. J'ai déjà essayé de changer l'adresse WordPress (URL) et l'adresse du site (URL) dans les paramètres généraux (mon panneau d'administration est déjà sur https)

Mon .htaccess ressemble à:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

# start https redirect
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
# end https redirect

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Quelqu'un a une idée?

2
Vincent

J'éviterais bien de modifier le .htaccess si vous ne faites que mettre à jour votre site Web de HTTP à HTTPS. Essayez un autre itinéraire:

Tout d’abord, rétablissez votre .htaccess aux paramètres par défaut:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Ensuite, vous devez vous assurer que toutes les URL de votre site Web sont à jour. Essayez les étapes suivantes à l'aide de l'outil Rechercher la base de données :

  1. Allez télécharger Le script de recherche et de remplacement de base de données d'Interconnect IT ici
  2. Décompressez le fichier et déposez le dossier dans votre localhost où votre WordPress est installé (la racine) et renommez le dossier enreplace( screenshot )
  3. Naviguez jusqu'au nouveau dossier que vous avez créé dans votre navigateur (ex: http://web.site/replace) et vous verrez l'outil de recherche/remplacement
  4. Cela devrait être assez explicite jusqu'à ce point: entrez votre lien HTTPS dans le champsearch for…et le nouveau lien HTTPS dans le champreplace with…

Vous pouvez cliquer sur le bouton exécution à sec sous actions pour voir ce qu'il va remplacer avant d'exécuter le script. Une fois que vous avez terminé, veillez à supprimer le dossier /replace/.

Toutefois...

Si vous insistez toujours pour que votre redirection HTTP vers HTTPS via le .htaccess insère ce qui suit entre les balises <IfModule mod_rewrite.c>:

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

Cela devrait ressembler à ceci:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Rewrite HTTP to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END WordPress
0