如果你只需要判断请求是否来自移动端,并进行相应的重定向,可以简化代码如下:
// 移动端重定向网址
const mobileUrl = 'https://bingbot.cn/mobile';
/**
* 判断是否为移动端
* @param {Request} request
* @returns {boolean}
*/
function isMobile(request) {
const userAgent = request.headers.get('User-Agent') || '';
return /android|iphone|ipad|mobile|webos|blackberry|iemobile|opera mini|kindle|silk|midp|wap/i.test(userAgent);
}
/**
* 根据当前请求,重定向到目标网址
* @param {Request} request
*/
function handleRequest(request) {
// 判断是否为移动端
if (isMobile(request)) {
return new Response(null, {
headers: {
location: mobileUrl
},
status: 302
});
}
// 如果不是移动端,可以返回一个简单的响应或其他处理
return new Response('Not a mobile device', { status: 200 });
}
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
移动端重定向:如果请求来自移动端,则重定向到 https://bingbot.cn/mobile
。
非移动端处理:如果请求不是来自移动端,可以选择返回一个简单的响应,例如返回状态码 200 和文本内容 'Not a mobile device'。你可以根据需要对这一部分做进一步处理,例如返回其他页面或响应。
这样,代码就专注于判断是否为移动端,并进行相应处理。