- Implemented a new route for robots.txt to control crawler access. - Added a sitemap.xml route to provide search engines with a list of site URLs. - Included functions for URL normalization and XML escaping to ensure proper formatting.
31 lines
851 B
JavaScript
31 lines
851 B
JavaScript
function normalizeBaseUrl(value) {
|
|
const raw = String(value || '').trim()
|
|
if (!raw) return ''
|
|
return raw.replace(/\/+$/, '')
|
|
}
|
|
|
|
export default defineEventHandler((event) => {
|
|
const runtimeConfig = useRuntimeConfig(event)
|
|
const requestUrl = getRequestURL(event)
|
|
|
|
const baseUrl = normalizeBaseUrl(runtimeConfig.public?.baseUrl) || `${requestUrl.protocol}//${requestUrl.host}`
|
|
|
|
const lines = [
|
|
'User-agent: *',
|
|
'Allow: /',
|
|
'Disallow: /cms',
|
|
'Disallow: /cms/',
|
|
'Disallow: /mitgliederbereich',
|
|
'Disallow: /mitgliederbereich/',
|
|
'Disallow: /api/',
|
|
'Disallow: /login',
|
|
'Disallow: /registrieren',
|
|
'Disallow: /passwort-vergessen',
|
|
'Disallow: /konto-loeschen',
|
|
`Sitemap: ${baseUrl}/sitemap.xml`
|
|
]
|
|
|
|
setHeader(event, 'Content-Type', 'text/plain; charset=utf-8')
|
|
return `${lines.join('\n')}\n`
|
|
})
|