Changeset f735304 in Klonkt


Ignore:
Timestamp:
06/18/2026 03:46:25 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
94a876f
Parents:
586f9dd
Message:

Hub: /sites/:slug → 301 to canonical /user/:slug (single URL scheme)

resolveSite permanently redirects the legacy /sites/ form to /user/ (preserves
path + querystring; hub mode only; does not affect /admin/sites). The only
internal /sites/ link (admin-sites list) now points directly to /user/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@…>

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/middleware/site.js

    r586f9dd rf735304  
    3333  // pinnen altijd op de primaire site.
    3434  if (tenancy === 'hub') {
    35     // Een Klonkt-site is bereikbaar via /user/:slug (canoniek) én /sites/:slug (legacy).
     35    // Een Klonkt-site is canoniek bereikbaar via /user/:slug. /sites/:slug is een
     36    // legacy-alias → 301 naar de canonieke vorm zodat er één URL-schema overblijft
     37    // (behoudt pad + querystring; raakt /admin/sites NIET, dat begint met /admin/).
    3638    const m = req.path.match(/^\/(sites|user)\/([a-zA-Z0-9_-]+)(\/.*)?$/);
    3739    if (m) {
     40      if (m[1] === 'sites') {
     41        return res.redirect(301, req.originalUrl.replace(/^\/sites\//, '/user/'));
     42      }
    3843      const site = db.prepare('SELECT * FROM sites WHERE slug = ?').get(m[2]);
    3944      if (site) {
    4045        res.locals.site = site;
    41         req.url = (m[3] || '/'); // strip /<prefix>/:slug zodat downstream de rest ziet
    42         res.locals.siteUrlBase = `/${m[1]}/${m[2]}`;
     46        req.url = (m[3] || '/'); // strip /user/:slug zodat downstream de rest ziet
     47        res.locals.siteUrlBase = `/user/${m[2]}`;
    4348        return next();
    4449      }
  • src/views/pages/admin-sites.ejs

    r586f9dd rf735304  
    3535            <div class="ax-site-meta">
    3636              <div class="ax-site-name">
    37                 <a href="/sites/<%= s.slug %>"><%= s.title %></a>
     37                <a href="/user/<%= s.slug %>"><%= s.title %></a>
    3838                <% if (s.is_primary) { %>
    3939                  <span class="ax-pill ax-pill-primary" title="Hoofd-/labelsite van deze installatie">★ primair</span>
Note: See TracChangeset for help on using the changeset viewer.