feat(routing): redirect section landings + harden 404 / no directory listings
All checks were successful
Build and deploy / deploy (push) Successful in 23s

- astro.config.mjs: section-only URLs now redirect to the first article in
  that section. /whp/admin/ used to render Apache's directory listing
  because no index.html existed; now it serves a meta-refresh to
  /whp/admin/overview/. Same for /whp/, /whp/getting-started/,
  /whp/how-to/, /whp/site-builder/, /whp/reference/, /whp/add-ons/.
- public/.htaccess: ships in dist, disables Options Indexes + MultiViews
  (defense in depth so any future section without a redirect doesn't
  leak a listing), and routes 404/403 to /404.html.
- src/content/docs/404.md: replaces the bare 'check the URL' tagline
  with two explicit actions — 'Go to the knowledge base home' and
  'WHP getting started'.
This commit is contained in:
2026-05-18 11:18:35 -07:00
parent 119d376029
commit aeb033bae5
3 changed files with 44 additions and 0 deletions

View File

@@ -7,6 +7,18 @@ import { fileURLToPath } from 'node:url';
// https://astro.build/config
export default defineConfig({
site: 'https://kb.anhonesthost.com',
// Send section-only URLs to the first article in that section. Without these,
// hitting e.g. /whp/admin/ would render the Apache directory listing because
// there is no index.html in that folder.
redirects: {
'/whp/': '/whp/getting-started/welcome/',
'/whp/getting-started/': '/whp/getting-started/welcome/',
'/whp/how-to/': '/whp/how-to/add-a-domain/',
'/whp/site-builder/': '/whp/site-builder/overview/',
'/whp/reference/': '/whp/reference/service-hostnames/',
'/whp/add-ons/': '/whp/add-ons/overview/',
'/whp/admin/': '/whp/admin/overview/',
},
vite: {
resolve: {
alias: {