# 路由与 `.shtml` 后缀 Laravel **没有**全局 `route suffix` 配置(不像某些框架的 `url_suffix`)。LaraBlog 用**显式路由**兼容 sablog: ```php // routes/legacy.php Route::get('/show-{id}.shtml', ...); Route::get('/category-{cid}.shtml', ...); Route::get('/archives.shtml', ...); Route::get('/login.shtml', ...); // ... ``` ## 规则 1. **内容向 GET** 优先提供 `.shtml`(及必要的 `index.php?action=` 兼容) 2. 新 canonical 可并存(如 `/tag/{name}`、`/posts/{slug}` → 301 到 show-id) 3. 不要指望「所有 GET 自动加 `.shtml`」;新增页面请在 `legacy.php` **写明**后缀 4. API 走 `/api/v1`,**不加** `.shtml` ## 验收 `php artisan route:list` 应能看到主要 `.shtml` 路由;`tests/Feature/BlogFrontendTest` 覆盖核心路径。