J'essaie de convertir un WordPress fraîchement installé et fonctionnel en un réseau multisite. Mais j'ai des problèmes à cause de notre configuration Apache.
Nous utilisons Apache pour rediriger de manière aléatoire les demandes de domain.com vers l'un des deux serveurs d'applications: app1.domain.com ou app2.domain.com. Le problème est que WordPress redirige vers DOMAIN_CURRENT_SITE (défini dans wp-config.php) si le domaine de navigateur actuel diffère de celui. Cela se traduit par une boucle de redirection 310. Voici un exemple de ce qui se passe:
Ce que je voudrais faire est de définir tous les liens WordPress et les URL sur domain.com et que WordPress ignore le fait que app1.domaine.fr ou app2.domaine.fr est en fait en cours de récupération. Est-ce possible?
Voici les fichiers de configuration Apache pertinents (simplifiés), au cas où je ne serais pas tout à fait clair:
application_servers.conf:
domain.com-prod-http app1.domain.com:80|app2.domain.com:80
httpd.conf:
RewriteMap server rnd:conf/application_servers.conf
RewriteRule ^/apps/*([^/]*)/*(.*) http://${server:domain.com-prod-http}/apps/$1/$2 [P,L,QSA]
Après avoir frappé ma tête pendant quelques jours, j'ai trouvé une solution qui fonctionne.
Ajoutez simplement ce qui suit à wp-config.php:
if ( isset( $_SERVER['HTTP_X_FORWARDED_Host'] ) ) {
$_SERVER['HTTP_Host'] = $_SERVER['HTTP_X_FORWARDED_Host'];
}
Cela forcera WordPress à utiliser le domaine demandé au lieu du domaine proxy.