export default defineNuxtRouteMiddleware((to, from) => { // 仅在根路径 '/' 进行判断,避免循环重定向或其他页面被误伤 if (to.path === '/') { // 获取 User-Agent // 注意:在 SSR 环境下,我们需要从请求头获取;在客户端导航时,使用 navigator let userAgent = ''; if (process.server) { const headers = useRequestHeaders(['user-agent']); userAgent = headers['user-agent'] || ''; } else { userAgent = navigator.userAgent; } // 定义移动端正则匹配 const isMobile = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(userAgent); // 执行重定向 // 302: 临时重定向 (建议先用 302 测试,稳定后可改为 301) if (isMobile) { return navigateTo('/mobile', { redirectCode: 301 }); } else { return navigateTo('/web', { redirectCode: 301 }); } } });