Cet environnement est Nginx avec Wordpress Multisite installé.
Je dois rediriger le domaine multisite principal (par exemple, domain.com, www.domain.com) vers un autre domaine (par exemple, domain-new.com, www.domain-new.com). Mais je ne veux pas que les sous-dossiers soient redirigés. Par exemple, les dossiers/wp-admin/ne doivent PAS être redirigés, sinon je ne pourrai pas administrer le réseau multisite.
Évidemment, je ne veux pas que d'autres domaines soient redirigés. Juste celui mentionné ci-dessus.
J'ai trouvé des instructions sur la procédure à suivre dans Apache, mais je n'ai pas réussi à le comprendre dans Nginx.
Je suis tombé sur ce qui suit:
server {
listen 80;
server_name domain.com www.domain.com;
rewrite ^ $scheme://www.domain-new.com$request_uri permanent;
Mais cela redirigera également les sous-dossiers de domain.com. J'étais sur comment faire pour exclure le dossier wp-admin
de la redirection.
J'ai aussi rencontré cette option:
location = / {
rewrite ^ http://domain-new.com/$uri permanent;
}
Mais je ne trouvais rien sur le fait que la commande location
puisse inclure un domaine et si elle le pouvait, comment faire en sorte qu'un sous-dossier spécifique (wp-admin
) ne soit pas inclus dans la redirection?
Si votre bloc serveur nginx
gère plusieurs domaines, la solution la plus simple consiste à tester le paramètre $Host
dans un bloc if
. Modifiez également l'instruction rewrite
afin qu'elle ne corresponde qu'à un seul URI.
Par exemple:
if ($Host = domain.com) {
rewrite ^/$ https://new-domain.com permanent;
}
Ceci est placé près du sommet du bloc server
existant.