2b69686795
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { sendRedirect } from 'h3'
|
|
|
|
/**
|
|
* 旧模块名 → 新模块名(按模块名单数命名)301 重定向
|
|
*
|
|
* 2026-07-20 起 URL 规范统一为模块名单数:
|
|
* 新闻 /article、产品 /product、案例 /case(详情与栏目同一词根,靠 navId 判定)。
|
|
* 改名前的旧链接需兼容,避免已收录 / 外链失效:
|
|
* /news、/newss → /article
|
|
* /products → /product
|
|
* /cases → /case
|
|
* 新规范路径(/article、/product、/case)不在映射内,不重定向。
|
|
*/
|
|
export default defineEventHandler((event) => {
|
|
const path = event.path || ''
|
|
if (
|
|
path.startsWith('/api/') ||
|
|
path.startsWith('/_') ||
|
|
/\.(?:ico|png|jpe?g|gif|svg|css|js|map|woff2?|ttf|txt)$/i.test(path)
|
|
) {
|
|
return
|
|
}
|
|
|
|
const OLD_TO_NEW: Array<[string, string]> = [
|
|
['/news', '/article'],
|
|
['/newss', '/article'],
|
|
['/products', '/product'],
|
|
['/cases', '/case']
|
|
]
|
|
|
|
for (const [oldPrefix, newPrefix] of OLD_TO_NEW) {
|
|
if (path === oldPrefix || path.startsWith(oldPrefix + '/')) {
|
|
const rest = path.slice(oldPrefix.length) // '' 或 '/xxx'
|
|
return sendRedirect(event, newPrefix + rest, 301)
|
|
}
|
|
}
|
|
})
|