Pour résoudre les pbs intermédiaires, je travaille localement avec le vrai nom de domaine de production, mais derrière un proxy, de sorte que l'installation drupal et la configuration du serveur web soient strictement identiques (sur certaines conf, l'écoute IP pourrait être différente, en fonction de l'ip d'écoute dans production).
Donc, j'avais un proxy qui répondait à http: //mydomain.local , procurant un proxy à http: //www.mydomain.tld , mais sur une IP locale.
Avec nginx, dans la conf vhost locale:
server_name mydomain.local;
set $proxied_server_name www.mydomain.tld;
set $proxied_cookie_domain mydomain.tld;
# then generic proxy conf
proxy_set_header Host $proxied_server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# My param added for drupal absolute url construction
proxy_set_header X-Proxy-Host $host;
# For headers rewriting (Location or Refresh)
proxy_redirect http://$proxied_server_name/ http://$host/;
proxy_cookie_domain $proxied_server_name $host;
# and for drupal auth, with cookies without sub-domain
proxy_cookie_domain $proxied_cookie_domain $host;
Pour le vhost mandaté, comme en production
server_name www.mydomain.tld;
Et dans mes settings.php
if (isset($_SERVER['HTTP_X_PROXY_HOST'])) {
$base_url = 'http://' .$_SERVER['HTTP_X_PROXY_HOST'];
}
Avec cette conf, je peux synchroniser tous les fichiers drupal ET la configuration de la base de données ET du serveur entre beaucoup d'installation drupal (développement et production dans mon cas mais pourrait être ce que vous voulez).