Compare commits
3 Commits
20d50411aa
...
5741e68181
| Author | SHA1 | Date | |
|---|---|---|---|
| 5741e68181 | |||
| 5c0ed95e9e | |||
| 9218c5d483 |
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
FROM node:20-alpine AS builder
|
FROM node:22-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ COPY . .
|
|||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# ── Runtime ──────────────────────────────────────────
|
# ── Runtime ──────────────────────────────────────────
|
||||||
FROM node:20-alpine AS runtime
|
FROM node:22-alpine AS runtime
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ HOST = "0.0.0.0"
|
|||||||
PORT = "4321"
|
PORT = "4321"
|
||||||
|
|
||||||
[phases.setup]
|
[phases.setup]
|
||||||
nixPkgs = ["nodejs_20"]
|
nixPkgs = ["nodejs_22"]
|
||||||
|
|
||||||
[start]
|
[start]
|
||||||
cmd = "node ./dist/server/entry.mjs"
|
cmd = "node ./dist/server/entry.mjs"
|
||||||
|
|||||||
Generated
+1672
-3037
File diff suppressed because it is too large
Load Diff
+5
-5
@@ -12,12 +12,12 @@
|
|||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/node": "^9.5.5",
|
"@astrojs/node": "^11.1.5",
|
||||||
"@astrojs/sitemap": "^3.7.3",
|
"@astrojs/sitemap": "^3.7.4",
|
||||||
"astro": "^5.18.1"
|
"astro": "^7.3.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@astrojs/check": "^0.9.9",
|
"@astrojs/check": "^0.9.10",
|
||||||
"typescript": "^5.9.3"
|
"typescript": "^6.0.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ MNQ Catering y Evento
|
|||||||
|
|
||||||
- Canonical domain: https://www.mnqcatering.com
|
- Canonical domain: https://www.mnqcatering.com
|
||||||
- Business type: Premium catering service
|
- Business type: Premium catering service
|
||||||
|
- Address: Calle Camino Vivero, 6, 29014, Málaga, España
|
||||||
|
- Area served: Málaga (city) and Provincia de Málaga
|
||||||
- Services: Bodas, eventos corporativos, reuniones familiares
|
- Services: Bodas, eventos corporativos, reuniones familiares
|
||||||
- Primary contact channels: WhatsApp (+34 678 17 15 13), phone (+34 678 17 15 13)
|
- Primary contact channels: WhatsApp (+34 678 17 15 13), phone (+34 678 17 15 13)
|
||||||
- Key pages: /, /nosotros, /bodas-reales, /corporativo-business, /reuniones-familiares, /contacto
|
- Key pages: /, /nosotros, /bodas-reales, /corporativo-business, /reuniones-familiares, /contacto
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const whatsappAriaLabel = 'Contactar con MNQ por WhatsApp';
|
|||||||
<div style="display:flex;flex-direction:column;gap:0.35rem;margin-top:var(--space-4);">
|
<div style="display:flex;flex-direction:column;gap:0.35rem;margin-top:var(--space-4);">
|
||||||
<a href="tel:+34678171513" class="footer-link" style="width:fit-content;">+34 678 17 15 13</a>
|
<a href="tel:+34678171513" class="footer-link" style="width:fit-content;">+34 678 17 15 13</a>
|
||||||
<a href="https://www.mnqcatering.com" class="footer-link" style="width:fit-content;">www.mnqcatering.com</a>
|
<a href="https://www.mnqcatering.com" class="footer-link" style="width:fit-content;">www.mnqcatering.com</a>
|
||||||
|
<p class="text-body-sm" style="width:fit-content;">Calle Camino Vivero, 6, 29014, Málaga</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,26 @@ const baseStructuredData = {
|
|||||||
'Servicio de catering para bodas, eventos corporativos y reuniones familiares con enfoque premium.',
|
'Servicio de catering para bodas, eventos corporativos y reuniones familiares con enfoque premium.',
|
||||||
telephone: '+34 678 17 15 13',
|
telephone: '+34 678 17 15 13',
|
||||||
serviceType: ['Bodas', 'Eventos corporativos', 'Reuniones familiares'],
|
serviceType: ['Bodas', 'Eventos corporativos', 'Reuniones familiares'],
|
||||||
|
// Verified business address (owner-confirmed). Geo coordinates not confirmed — left out.
|
||||||
|
address: {
|
||||||
|
'@type': 'PostalAddress',
|
||||||
|
streetAddress: 'Calle Camino Vivero, 6',
|
||||||
|
postalCode: '29014',
|
||||||
|
addressLocality: 'Málaga',
|
||||||
|
addressRegion: 'Málaga',
|
||||||
|
addressCountry: 'ES',
|
||||||
|
},
|
||||||
|
// Kept conservative to the confirmed service area: city + province of Málaga.
|
||||||
|
areaServed: [
|
||||||
|
{
|
||||||
|
'@type': 'City',
|
||||||
|
name: 'Málaga',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'@type': 'AdministrativeArea',
|
||||||
|
name: 'Provincia de Málaga',
|
||||||
|
},
|
||||||
|
],
|
||||||
contactPoint: {
|
contactPoint: {
|
||||||
'@type': 'ContactPoint',
|
'@type': 'ContactPoint',
|
||||||
contactType: 'customer service',
|
contactType: 'customer service',
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import { defineMiddleware } from 'astro:middleware';
|
||||||
|
|
||||||
|
const CANONICAL_HOST = 'www.mnqcatering.com';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SEO: this site is undesirably mirrored at mnqeventos.es (same content, no
|
||||||
|
* redirect at the DNS/hosting level). This middleware enforces the canonical
|
||||||
|
* host at the application layer for any host that isn't exactly
|
||||||
|
* www.mnqcatering.com (covers mnqeventos.es, www.mnqeventos.es, and the bare
|
||||||
|
* mnqcatering.com apex).
|
||||||
|
*
|
||||||
|
* NOTE: this must also be verified at the reverse-proxy/hosting layer — host
|
||||||
|
* detection here depends on how the Host header (or X-Forwarded-Host, when
|
||||||
|
* behind a proxy) actually arrives in production. If the proxy doesn't
|
||||||
|
* forward the original host, this check will see the wrong value.
|
||||||
|
*/
|
||||||
|
export const onRequest = defineMiddleware((context, next) => {
|
||||||
|
const requestHost = context.url.host;
|
||||||
|
|
||||||
|
if (requestHost !== CANONICAL_HOST) {
|
||||||
|
const redirectUrl = new URL(context.url.pathname + context.url.search, `https://${CANONICAL_HOST}`);
|
||||||
|
return context.redirect(redirectUrl.toString(), 301);
|
||||||
|
}
|
||||||
|
|
||||||
|
return next();
|
||||||
|
});
|
||||||
@@ -93,6 +93,14 @@ const whatsappAriaLabel = 'Contactar con MNQ por WhatsApp';
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="stack-4">
|
||||||
|
<span class="label-caps text-primary">Dirección</span>
|
||||||
|
<div style="display:flex;align-items:center;gap:var(--space-4);">
|
||||||
|
<Icon name="architecture" class="text-primary" />
|
||||||
|
<p class="text-muted">Calle Camino Vivero, 6, 29014, Málaga</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="stack-4">
|
<div class="stack-4">
|
||||||
<span class="label-caps text-primary">Sitio web</span>
|
<span class="label-caps text-primary">Sitio web</span>
|
||||||
<div style="display:flex;align-items:center;gap:var(--space-4);">
|
<div style="display:flex;align-items:center;gap:var(--space-4);">
|
||||||
|
|||||||
Reference in New Issue
Block a user