- Route /armflex -> /armaflex (page file + nav/listing links) - Image folder public/images/armflex/ -> public/images/armaflex/ - Fix gallery alt-text 'Armflex' -> 'Armaflex' - Add nginx 301 redirect so old /armflex URL still works (SEO-safe) - Update engineering log + handoff Verified: npm run build (44 pages), tsc --noEmit, nginx -t, live probe /armaflex/ 200, zero stale 'armflex' refs.
3.0 KiB
3.0 KiB
title, status, verified
| title | status | verified |
|---|---|---|
| Armaflex product slug rename (armflex → armaflex) | complete | 2026-09-08 |
Armaflex Product Slug Rename (armflex → armaflex)
Plan Status
complete — the misspelled armflex product slug was renamed to armaflex (the correct Armaflex/Armacell brand spelling) across route, image folder, navigation, and alt-text, with an nginx 301 redirect added so the old URL does not break.
Code commit: (to be filled after commit) on main.
Changed Scope
- Renamed page
src/pages/armflex.astro→src/pages/armaflex.astro(route/armflex→/armaflex) viagit mv(history preserved). - Renamed image folder
public/images/armflex/→public/images/armaflex/(all 12 assets) viagit mv. - Updated all route/image references:
src/components/common/Header.astro,src/layouts/BaseLayout.astro(category slug + Armaflex subcategory slug),src/pages/all-products.astro,src/pages/404.astro, and the page's own image paths. - Corrected gallery
alt="Armflex …"→alt="Armaflex …"(5 images) insrc/pages/armaflex.astro. - Added a 301 redirect in
nginx.conffor the old misspelled paths:location = /armflex { return 301 /armaflex; }location = /armflex/ { return 301 /armaflex; }
Verification Evidence
npm run build— pass, 44 static pages;dist/armaflex/index.htmlgenerated (70.8 KB);dist/armflex/index.htmlgone;dist/images/armaflex/populated;dist/images/armflex/gone.npx tsc --noEmit— pass (no errors).git diff --check— pass.- Source scan —
grep -rn 'armflex' src | grep -v armaflexreturns nothing (clean); all 5 nav/listing links now point to/armaflex. - Built output scan — no stale
/armflexhrefs orimages/armflex/paths; gallery alt-text reads "Armaflex ภาพที่ 1–5"; H1 reads "Armaflex Class 1 ชนิดม้วน". - Live static probe (
python3 -m http.serverondist/):GET /armaflex/→ 200,GET /images/armaflex/gallery-1.jpg→ 200, oldGET /armflex/→ 404 at the static layer (the nginx 301 intercepts it at deploy time). nginx -ton the edited config (wrapped in the requiredevents{}/http{}blocks) — syntax is ok / test is successful.
Tooling Limitations
npm testunavailable (notestscript inpackage.json).- The nginx 301 was validated for syntax locally and by logic; it is served by EasyPanel's nginx container at deploy time, so the live
armflex → armaflexredirect was not exercised against the production endpoint in this session.
Risks and Remaining Work
- After deploy, confirm the production
armflex→armaflex301 actually fires (EasyPanel must rebuild with the newnginx.conf). - Confirm the real production domain before any domain-dependent SEO action (existing known limitation, unchanged).
Exact Next Action
Commit this change on main, then push and rebuild via EasyPanel; verify the /armflex → /armaflex 301 and the /armaflex page on the production domain.