Comment exécuter Discourse dans un sous-répertoire d'un domaine externe ?

Nous migrons de notre site WordPress vers une plateforme de commerce électronique hébergée dans le cloud, qui utilisera notre nom de domaine principal en raison de notre fort référencement.

Je souhaite transférer nos articles vers Discourse, mais l’exécuter sous le même domaine : est-ce possible ?

Pour être clair, http://ultraluz.com.br/ sera hébergé sur un serveur externe que je ne peux ni contrôler ni accéder, donc je pense que je ne peux pas utiliser de techniques Nginx ou similaires. J’ai uniquement accès au serveur qui exécutera Discourse.

Mon objectif est de déplacer des articles comme celui-ci : http://ultraluz.com.br/iluminacao-para-esportes-como-deixar-as-instalacoes-esportivas-dignas-de-um-atleta-profissional/ vers Discourse, tout en conservant le même chemin d’accès ou, à défaut, domaine/blog/meme-url, tandis que mon nom de domaine principal est pointé et hébergé sur une plateforme de type Wix.

Il est peut-être possible de placer Cloudflare devant les deux sites avec une règle pour acheminer le trafic vers Discourse pour le sous-dossier. Je ne connais personne qui le fasse. Vous devrez probablement engager quelqu’un ou trouver la solution par vous-même. Suivez simplement le sujet ici sur les installations en sous-dossier et consultez ce que Cloudflare propose à ce sujet.

Je croyais que l’idée selon laquelle un sous-dossier était meilleur pour le référencement avait disparu. Ma recommandation serait d’utiliser simplement un sous-domaine, mais si vous avez un budget, contactez-moi ou publiez dans Marketplace.

Vous pourriez techniquement réaliser la partie sous-dossier sur Cloudflare en utilisant une règle de page Entreprise ou peut-être via des workers, mais je suis assez sceptique quant à notre capacité à fournir une assistance dans l’un ou l’autre cas.

Cloudflare est difficile à prendre en charge sous quelque forme que ce soit au-delà du DNS.

Et oui, Google lui-même a démenti tout ce charlatanisme SEO consistant à tout regrouper sous un seul domaine.

Mieux vaut prévenir que guérir en matière de SEO. Je ne vois pas comment un blog.domaine pourrait améliorer le référencement de mon domaine, donc il n’y a aucun intérêt à avoir un domaine de blog.

Je réfléchis à suivre ce guide. Quelle configuration assetsPathnames: ["/public/", "/assets/"] devrais-je utiliser ?

Les installations en sous-dossier sont beaucoup plus complexes et très fragiles.

L’idée est qu’il n’y a aucun avantage à fonctionner sous le même nom de domaine complet (FQDN), mais bien plus de risques et de coûts.

C’est ce que vous croyez. Mais il n’existe aucune preuve qu’un sous-domaine contribue à améliorer le domaine principal.

Et même Cloudflare recommande d’exécuter tout sur le même domaine.

Alors, dites-moi, pourquoi leur communauté de discours se trouve-t-elle sur un sous-domaine ?

Parce que tout ce qui contient « cloudflare » dans le domaine se classe bien. Et leur forum est immense.

Si c’est ce que vous croyez, passez votre chemin. Il n’y a rien pour vous ici. Allez ailleurs, allez là où les gens partagent vos mêmes croyances.

Je pourrais ajouter beaucoup plus de liens, avec des données à l’appui, si je n’étais pas limité à deux liens. Sauf pour Cloudflare, qui est immense et n’a pas besoin de se concentrer sur le référencement, tous les sites web de la première page pour cette recherche utilisent des sous-répertoires.

Il ne sera pas difficile de trouver d’autres endroits où les gens partagent la même opinion, car cela semble être un consensus au sein de la communauté du référencement.

Mais bien sûr, si vous avez TOUTE preuve qu’un sous-domaine aide à classer le domaine racine, veuillez éclairer l’internet :slight_smile:

Directement de Matt Cutts. Vos « experts » en référencement vous vendent du vent.

Au fil des ans, certaines des personnes les plus incompétentes et les pires que j’aie jamais vues sur une équipe sont les « experts en référencement ». Ils sont uniformément une honte et un embarras pour l’industrie.

C’est vrai ! Il vaut infiniment mieux faire quelque chose que la quasi-totalité du monde s’accorde à dire n’aidera pas votre classement dans les résultats de recherche, mais qui risque fort de mettre votre site hors ligne de manière inattendue, sans aucun moyen clair de le réparer.

Quelqu’un a-t-il déjà essayé de faire cela avec Cloudflare ?

Comme nous l’avons déjà expliqué dans votre autre sujet, ce que vous demandez ne peut pas être pris en charge ici.

Vous devrez soit souscrire à un plan Enterprise auprès de Cloudflare, soit créer des Workers personnalisés. Dans les deux cas, vous devez contacter Cloudflare.

Comme indiqué, la réponse que j’ai donnée précédemment est tout ce que vous obtiendrez ici.

Ce que je n’ai pas suffisamment clarifié, c’est qu’il s’agit d’une tâche impossible.

Pour vous donner une idée, je vous facturerais environ 1 000 , sans aucune garantie que cela fonctionnerait plus d'une semaine après ma configuration (ou je pourrais facturer 500 sans garantir que je parviendrais même à résoudre le problème).

De plus, vous auriez besoin du plan Cloudflare Enterprise.

Si vous êtes intéressé, publiez un message dans Marketplace en indiquant votre budget, que vous êtes prêt à payer pour Cloudflare Enterprise et que vous comprenez que cela est probablement impossible.

Je pense que j’ai terminé à 80 % la mise en œuvre de cela. J’ai installé Discourse sur un sous-domaine avec une installation « normale ».

Ensuite, j’ai créé un worker Cloudflare qui fait proxy de /blog vers mon sous-domaine. Cela fonctionne, mais Chrome refuse de charger certains éléments en raison de la politique CSP.

Des idées pour contourner cela ? Je partagerai le code de mon worker quand ce sera à 100 %.

Vous pouvez consulter https://ultraluz.com.br/blog pour voir ce qui se passe.

Mon idée est que, une fois cela résolu, j’utiliserai simplement robots.txt pour bloquer Google afin qu’il n’indexe pas mon sous-domaine, de sorte qu’il ne voie et n’indexe que /blog, tout en conservant un accès normal au sous-domaine si nécessaire.

Cela ne fonctionnera jamais vraiment bien avec une installation « normale ». Vous devriez vraiment suivre la procédure d’installation en sous-dossier. Cela résoudra vos problèmes CSP et bien d’autres. Par ailleurs, je pense que vous êtes presque au bout.

Que dois-je définir pour DISCOURSE_HOSTNAME lorsque j’utilise DISCOURSE_RELATIVE_URL_ROOT ? La racine relative sera blog pour moi, n’est-ce pas ?

Comment cela modifie-t-il les éléments liés à SSL ? Voici ma section env du fichier yml :

env:
  LANG: en_US.UTF-8
  DISCOURSE_RELATIVE_URL_ROOT: /forum

  VIRTUAL_HOST: forum.ultraluz.com.br
  VIRTUAL_PORT: 80
  LETSENCRYPT_HOST: forum.ultraluz.com.br
  LETSENCRYPT_EMAIL: redacted@email.com

  DISCOURSE_HOSTNAME: forum.ultraluz.com.br
  DISCOURSE_DEVELOPER_EMAILS: 'redacted@email.com'

  DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: apikey
  DISCOURSE_SMTP_PASSWORD: "password"
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  SSL_POLICY: Mozilla-Modern  

Les éléments relatifs à Let’s Encrypt et au hôte virtuel concernent mon proxy nginx Docker (jwilder/nginx-proxy) qui gère le proxy et la création de SSL pour moi en se basant sur ces variables…

J’avais également ceci, mais je pense qu’il sera entièrement remplacé par le code ci-dessus ?

run:
  - replace:
      filename: /etc/nginx/conf.d/discourse.conf
      from: "types {"
      to: |
        set_real_ip_from 172.18.0.0/24;
        real_ip_header X-Forwarded-For;
        real_ip_recursive on;
        types {

Oui, /blog avec le slash.

Non, seulement ultraluz.com.br.

Je suppose que vous devriez laisser la partie LetsEncrypt telle quelle.

Cela n’a pas fonctionné de cette manière. Je suppose que c’est parce que le worker a besoin d’un domaine pour récupérer des éléments, et que le domaine racine se trouve sur une autre adresse IP.

Je dis essentiellement au worker : « lorsqu’un utilisateur accède à /blog, récupère cela depuis rootdomain/blog ». Cela affiche bien sûr ma page d’erreur 404 actuelle de WordPress.

Je pense qu’en raison de la configuration avec un même domaine, plusieurs adresses IP/serveurs, un sous-domaine est nécessaire pour charger les ressources de Discourse. Mais il est tard maintenant et je dois dormir.

Je pense que la solution la plus simple pour y parvenir sera de corriger les erreurs CSP avec une installation classique sur un sous-domaine.