web-dev-qa-db-fra.com

URL sans redirection www directement avec la page de soumission - Installation de Multiwordpress

Ceci est une question liée à Wordpress, car le problème provient d'un Wordpress multi-install. Mais c'est aussi lié à serveride, avec .htaccess

Mon problème est : lorsqu'un utilisateur tape mon URL sans WWW, il le renvoie dans une URL de soumission et l'invite à se connecter. De https://mister-tea.fr vers une URL de ce type https://www.fixie-lille.fr/wp-signup.php?new=mister-tea.fr au lieu de https://www.mister-tea.fr

Je ne le veux vraiment pas, je veux juste que l'utilisateur soit redirigé vers le même domaine et la même URL avec WWW.

Mon domaine principal est https://www.fixie-lille.fr (site web Fr)

La règle pourrait fonctionner:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_Host} ^fixie-lille.fr$
RewriteRule (.*) https://www.fixie-lille.fr/$1 [R=301,L]
</IfModule>

Mais ça casse un autre site.

J'ai essayé d'utiliser certaines règles dans .htaccess, mais cela ne semble pas fonctionner. Tous mes sites Web utilisent des domaines WWW et ne sont pas disponibles sans WWW.

A côté de cela, j'utilise cette règle pour rediriger l'utilisateur entre http et https

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

La règle suivante pourrait-elle avoir une mauvaise interférence?

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

A côté de cela, tout fonctionne correctement avec plusieurs Wordpress en une seule installation.

Merci par avance, je suis à votre disposition pour répondre à vos questions

1
Arthur Camberlein

Étant donné que vous avez plusieurs domaines, vous ne pouvez pas inclure le domaine dans la redirection elle-même pour créer une redirection générique à taille unique (ce que je suppose que vous essayez de faire). Vous devez également vous assurer que les directives sont dans le bon ordre.

Étant donné que tous vos sites utilisent le sous-domaine www, essayez plutôt la procédure suivante. Cependant, cela suppose que vous n'avez aucun autre sous-domaine.

RewriteEngine On

# non-www to www (and HTTPS)
RewriteCond %{HTTP_Host} !^www\.
RewriteRule (.*) https://www.%{HTTP_Host}/$1 [R=301,L]

# HTTP to HTTPS 
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]

# WordPress directives follow...

La redirection non-www vers www vérifie maintenant si l'hôte demandé ne démarre pas www. Et si non, simplement le prépare.

Pas besoin de répéter la directive RewriteEngine et pas besoin des wrappers <IfModule mod_rewrite.c> sur vos directives personnalisées.

En ce qui concerne votre redirection HTTP vers HTTPS, il n'est pas nécessaire de capturer la RewriteRulemodèle si elle n'est pas utilisée dans le substitution. c'est à dire. Lors de l’utilisation de %{REQUEST_URI} au lieu d’une référence arrière.

Comme toujours, effacez le cache de votre navigateur avant de tester.

0
MrWhite