import { defineEventHandler, setHeader } from 'h3' import { useRuntimeConfig } from '#imports' /** * robots.txt * GET /api/robots.txt * 根据环境动态生成 robots.txt */ export default defineEventHandler((event) => { const config = useRuntimeConfig() // 开发环境禁止抓取 const isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV // canonical host 优先用真实访问域名;缺失时回退到「主域清单首个 + 默认租户号」, // 不再硬编码 site- 前缀(支持多前缀 + 多主域) const baseDomains = (config.public.baseDomains as string[]) || [] const fallbackDomain = baseDomains[0] || (config.public.baseDomain as string) || 'shoplnk.cn' const host = event.node?.req?.headers?.host || `${config.public.tenantId ? `site-${config.public.tenantId}.` : ''}${fallbackDomain}` const origin = `https://${host}` let content: string if (isDev) { content = `User-agent: * Disallow: /` } else { content = `User-agent: * Allow: / Disallow: /api/ Sitemap: ${origin}/api/sitemap.xml` } setHeader(event, 'Content-Type', 'text/plain') return content })