web-dev-qa-db-fra.com

WordPress multisite ERR_TOO_MANY_REDIRECTS où le nom de domaine aboutit au chemin des pages inexistantes

J'ai un WordPress configuration multisite avec des sous-domaines. J'ai pointé cinq sous-domaines à cela. J'ai également installé SSL sur le domaine principal et les autres sous-domaines.

J'ai écrit le code de redirection ci-dessous pour rediriger le domaine principal non www vers le site www et tous les domaines (domaine principal + sous-domaines) vers https.

RewriteCond %{HTTP_Host} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]

Jusque-là, ça va.

Mais, quand je vais à n'importe quelle URL 404 comme https://www.example.com/any-404-page, il me redirige vers https://www.example.com/www.example.com et il retourne ERR_TOO_MANY_REDIRECTS

Cela se produit-il à cause de mon code .htaccess?

1
Aftab

J'ai écrit le code de redirection ci-dessous pour rediriger le domaine principal non www vers le site www et tous les domaines (domaine principal + sous-domaines) vers https.

RewriteCond %{HTTP_Host} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]

Ceci est peut-être un problème pour votre problème immédiat, cependant, ce code ne fait pas ce que vous dites. En réalité, ce code ne fait rien du tout pour les sous-domaines, comme vous semblez le suggérer!?

Plus précisément...

RewriteCond %{HTTP_Host} !^(.*)\.(.*)\. [NC]

Cette condition ne réussira jamais pour aucun sous-domaine ni pour un domaine qualifié complet (tous les noms d'hôte valides, à l'exception du domaine principal dans le cas de TLD à un seul niveau, auront au moins 2 segments de points), donc la RewriteRule suivante ne sera jamais traitée.

RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]

Cela redirige toujours HTTP vers HTTP et HTTPS vers HTTPS, il ne redirige pas HTTP vers HTTPS. Si vous en avez besoin, vous devez coder en dur la s la substitution, comme @Stephen l'a suggéré dans les commentaires.

1
MrWhite

C'était à cause de NOBLOGREDIRECT constante dans WordPress. J'avais défini la NOBLOGREDIRECT comme www.example.com, donc si cette URL n'existe pas, elle est redirigée vers https://www.example.com/www.example.com.

J'ai changé NOBLOGREDIRECT de www.example.com à https://www.example.com et maintenant, il est redirigé vers la page d'accueil.

1
Aftab