J'ai un site modx sur un VPS avec plusieurs noms de domaines et de sous-domaines. Le site modx doit utiliser ce que j'appelle le sous-domaine "principal" du nom de domaine "principal", c'est-à-dire www
.intendedname
. Tld . Le problème est qu'avec le temps, le site commence mystérieusement à utiliser un autre sous-domaine pour les liens vers des contenus tels que des vidéos, des images et même des pages et des liens (internes). Les autres sous-domaines ne servent pas ce contenu bien sûr. Si j'efface le cache modx, l'état d'origine est restauré. Cependant, le problème revient plus tard.
Le SMV a un domaine enregistré et plusieurs enregistrements A pointant sur l'IP du SMV, en tant que sous-domaines. Il y a le 'primaire' qui est destiné à être utilisé comme serveur de contenu public, les autres sont comme docs.
et test.
, etc.
En plus de cela, j'ai un service DNS dynamique client installé à partir de no-ip sur la machine et un nom de domaine dynamique lié. Cela donne un nom de domaine complètement différent. Je l'ai utilisé à l'origine pour la connexion SSH et pour servir un site complètement différent.
Un nginx
serveur est utilisé pour réécrire les différents sous-domaines aux bons endroits.
edit Les modèles modx utilisent Templates utilisent <base href="[[++site_url]]" />
.
La "solution" actuelle au problème consiste à utiliser également la réécriture pour réécrire tout dans le domaine et le sous-domaine "principaux". Dans le fichier de configuration nginx du site, il utilise (sans surprise) la rewrite
directive pour réécrire l'inattendu server_name
entrées (c'est-à-dire l'autre sous-domaines) dans un server
bloc dédié à cette tâche.
Donc avec cela, le site principal fonctionne (en quelque sorte) mais cela rend toutes les autres fonctions (docs) inutiles.
Avant que cette réécriture ne soit définie, la solution consistait à vider le cache modx régulièrement. Le contenu original de modx n'est pas corrompu, seuls les fichiers en cache le sont.
Que puis-je faire pour connaître le problème et le résoudre?
Utilisez-vous la propriété dynamique de base href
dans vos modèles MODx? Si tel est le cas, définissez-le sur l'adresse du site Web que vous souhaitez utiliser comme base href
, puis effacez le cache MODx et vous devriez être prêt.
Cela ressemble à un problème de base href
, comme le suggère Aaron.
Cependant, je ne conseillerais jamais à quiconque de le coder en dur en <base href="http://domain.tld">
- c'est pénible si vous voulez jamais copier un site dans un environnement de transfert ou migrer le site ailleurs.
Au lieu de cela, la solution simple consiste à résoudre dynamiquement la valeur href
de base et à s’assurer qu’elle n’est pas mise en cache: <base href="[[!++site_url]]">
. Combinez cela avec une réécriture à partir de domaines qui ne devraient pas être utilisés et vous devriez être bon.