From 8c6a0618293809f94691320a316e608ad0aa2201 Mon Sep 17 00:00:00 2001 From: chemavx Date: Fri, 24 Jul 2026 09:23:15 +0000 Subject: [PATCH] =?UTF-8?q?blogs:=20servir=20key=20de=20IndexNow=20en=20la?= =?UTF-8?q?=20ra=C3=ADz=20v=C3=ADa=20replacePath=20de=20Traefik?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La key de IndexNow solo autoriza URLs bajo su directorio, así que debe vivir en /{key}.txt. Ghost no sirve ficheros arbitrarios en la raíz: el middleware reescribe la ruta al fichero real en content/files/indexnow/ (PVC de Ghost, colocado con kubectl cp). El envío de URLs lo hace ~/seo-tools/indexnow_watch.py (timer horario en el master). Co-Authored-By: Claude Fable 5 --- ghost-en/indexnow.yaml | 34 ++++++++++++++++++++++++++++++++++ zona-exclusion/indexnow.yaml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 ghost-en/indexnow.yaml create mode 100644 zona-exclusion/indexnow.yaml diff --git a/ghost-en/indexnow.yaml b/ghost-en/indexnow.yaml new file mode 100644 index 0000000..ce0ae9d --- /dev/null +++ b/ghost-en/indexnow.yaml @@ -0,0 +1,34 @@ +# IndexNow (Bing/DDG/Yandex): la key debe servirse en la RAÍZ del host para +# autorizar todo el sitio (regla de alcance del protocolo). Ghost no sirve +# ficheros arbitrarios en la raíz, así que replacePath reescribe /{key}.txt +# al fichero real en content/files/indexnow/ (PVC de Ghost). +# El vigilante que envía las URLs es ~/seo-tools/indexnow_watch.py en el master. +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: indexnow-key-rewrite + namespace: ghost-en +spec: + replacePath: + path: /content/files/indexnow/71a89fb8cf46217a239d3a6f0fe3f14f.txt +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: ghost-en-indexnow + namespace: ghost-en +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`www.theexclusionzone.com`) && Path(`/71a89fb8cf46217a239d3a6f0fe3f14f.txt`) + middlewares: + - name: indexnow-key-rewrite + namespace: ghost-en + services: + - name: ghost-en + port: 2368 + tls: + secretName: ghost-en-tls diff --git a/zona-exclusion/indexnow.yaml b/zona-exclusion/indexnow.yaml new file mode 100644 index 0000000..91261ed --- /dev/null +++ b/zona-exclusion/indexnow.yaml @@ -0,0 +1,34 @@ +# IndexNow (Bing/DDG/Yandex): la key debe servirse en la RAÍZ del host para +# autorizar todo el sitio (regla de alcance del protocolo). Ghost no sirve +# ficheros arbitrarios en la raíz, así que replacePath reescribe /{key}.txt +# al fichero real en content/files/indexnow/ (PVC de Ghost). +# El vigilante que envía las URLs es ~/seo-tools/indexnow_watch.py en el master. +--- +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: indexnow-key-rewrite + namespace: zona-exclusion +spec: + replacePath: + path: /content/files/indexnow/e901c150ef9821531cf0d314154c4d1f.txt +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: zona-exclusion-indexnow + namespace: zona-exclusion +spec: + entryPoints: + - websecure + routes: + - kind: Rule + match: Host(`zonadeexclusion.com`) && Path(`/e901c150ef9821531cf0d314154c4d1f.txt`) + middlewares: + - name: indexnow-key-rewrite + namespace: zona-exclusion + services: + - name: zona-exclusion + port: 80 + tls: + secretName: zona-exclusion-tls