# 路由与 `.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` 覆盖核心路径。
