Add FAQ, Rules, and Safety pages with corresponding routes and SEO metadata

- Introduced new links in ImprintContainer.vue for FAQ, Rules, and Safety pages.
- Added FaqView, RulesView, and SafetyView components to handle the new routes.
- Implemented SEO metadata for the new pages in routes-seo.js and router/index.js.
- Updated server routes to include the new paths for proper handling in production.

These changes enhance the site's informational resources and improve SEO visibility for user inquiries.
This commit is contained in:
Torsten Schulz (local)
2026-03-27 14:15:37 +01:00
parent 6909c7c45c
commit 06182a4a95
10 changed files with 500 additions and 5 deletions

View File

@@ -136,12 +136,12 @@ setupBroadcast(io, __dirname);
// SPA-Fallback muss nach allen anderen Routen stehen
if (IS_PRODUCTION) {
const distPath = join(__dirname, '../docroot/dist');
const KNOWN_SPA_ROUTES = new Set(['/', '/partners', '/feedback', '/mockup-redesign']);
const KNOWN_SPA_ROUTES = new Set(['/', '/partners', '/feedback', '/faq', '/regeln', '/sicherheit', '/mockup-redesign']);
app.use(express.static(distPath));
// Fallback für Vue Router (SPA) - muss am Ende stehen
app.get('*', (req, res) => {
// Überspringe SEO-Routes in Production (werden bereits von setupSEORoutes behandelt)
if (IS_PRODUCTION && (req.path === '/' || req.path === '/partners')) {
if (IS_PRODUCTION && (req.path === '/' || req.path === '/partners' || req.path === '/feedback' || req.path === '/faq' || req.path === '/regeln' || req.path === '/sicherheit')) {
return; // Route wurde bereits behandelt
}
// In Production: /src/ Pfade sollten nicht existieren (404)

View File

@@ -72,6 +72,78 @@ const seoData = {
},
inLanguage: 'de-DE'
}
},
'/faq': {
title: 'FAQ - SingleChat',
description: 'Häufige Fragen zu SingleChat: Einstieg, Privatsphäre, Bildaustausch, Blockieren und mehr.',
keywords: 'SingleChat FAQ, Hilfe, Privatsphäre, Blockieren, Bilder, Chat',
ogTitle: 'FAQ - SingleChat',
ogDescription: 'Antworten auf häufige Fragen rund um SingleChat.',
ogType: 'website',
ogUrl: `${SITE_URL}/faq`,
ogImage: DEFAULT_IMAGE,
robots: 'index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1',
schema: {
'@context': 'https://schema.org',
'@type': 'FAQPage',
name: 'FAQ - SingleChat',
url: `${SITE_URL}/faq`,
description: 'Häufige Fragen zu SingleChat: Einstieg, Privatsphäre, Bildaustausch, Blockieren und mehr.',
isPartOf: {
'@type': 'WebSite',
name: 'SingleChat',
url: `${SITE_URL}/`
},
inLanguage: 'de-DE'
}
},
'/regeln': {
title: 'Regeln - SingleChat',
description: 'Chat-Regeln für ein respektvolles und sicheres Miteinander auf SingleChat.',
keywords: 'SingleChat Regeln, Chat Regeln, Community, Sicherheit',
ogTitle: 'Regeln - SingleChat',
ogDescription: 'Chat-Regeln für ein respektvolles und sicheres Miteinander.',
ogType: 'website',
ogUrl: `${SITE_URL}/regeln`,
ogImage: DEFAULT_IMAGE,
robots: 'index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1',
schema: {
'@context': 'https://schema.org',
'@type': 'WebPage',
name: 'Regeln - SingleChat',
url: `${SITE_URL}/regeln`,
description: 'Chat-Regeln für ein respektvolles und sicheres Miteinander auf SingleChat.',
isPartOf: {
'@type': 'WebSite',
name: 'SingleChat',
url: `${SITE_URL}/`
},
inLanguage: 'de-DE'
}
},
'/sicherheit': {
title: 'Sicherheit & Privatsphäre - SingleChat',
description: 'Hinweise zu Privatsphäre, Blockieren/Melden und sicherer Nutzung von SingleChat.',
keywords: 'SingleChat Sicherheit, Privatsphäre, Blockieren, Melden',
ogTitle: 'Sicherheit & Privatsphäre - SingleChat',
ogDescription: 'Hinweise zu Privatsphäre, Blockieren/Melden und sicherer Nutzung.',
ogType: 'website',
ogUrl: `${SITE_URL}/sicherheit`,
ogImage: DEFAULT_IMAGE,
robots: 'index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1',
schema: {
'@context': 'https://schema.org',
'@type': 'WebPage',
name: 'Sicherheit & Privatsphäre - SingleChat',
url: `${SITE_URL}/sicherheit`,
description: 'Hinweise zu Privatsphäre, Blockieren/Melden und sicherer Nutzung von SingleChat.',
isPartOf: {
'@type': 'WebSite',
name: 'SingleChat',
url: `${SITE_URL}/`
},
inLanguage: 'de-DE'
}
}
};
@@ -231,6 +303,9 @@ export function setupSEORoutes(app, __dirname) {
Allow: /
Allow: /partners
Allow: /feedback
Allow: /faq
Allow: /regeln
Allow: /sicherheit
Disallow: /api/
Disallow: /static/logs/
Disallow: /mockup-redesign