禁止访问网站中所有的动态页面

本文介绍了如何正确设置robots.txt文件中的User-agent与Disallow指令,避免搜索引擎误收录不希望被索引的网页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

robots.txt文件作如下设置:

User-agent: *
Disallow: /*?*

这三个需要注意的是: 

User-agent:   *

Disallow: Allow:    这三个和后面链接的时候中间要有空格。这个很多时候容易忽略。
忽略了对你网站没有影响 。但是可能会收录一些你不愿意搜索引擎收录的页面。

<think>好的,我现在需要解决用户的问题:如何用HTML和JavaScript检测设备类型,禁止电脑访问,但允许手机访问原网页。首先,我得理解用户的需求。用户希望当用户通过电脑浏览器访问网站时,被阻止访问,而手机访问时可以正常浏览。这可能用于移动端专属内容或者响应式设计中的特定情况。 首先,我需要考虑如何检测设备是手机还是电脑。常见的方法是通过JavaScript检测用户代理字符串(User Agent String)。用户代理字符串包含了浏览器和操作系统的信息,可以用来判断设备类型。比如,手机设备通常包含“Mobi”或者“Android”等关键词。不过,这种方法可能不够准确,因为有些平板电脑或桌面浏览器可能会修改User Agent,但通常这是一个常用的方法。 接下来,我需要编写JavaScript代码来检测设备类型。如果检测到是电脑访问,就阻止访问,可能跳转到错误页面或者显示提示信息。如果是手机,就允许正常访问。 然后,我需要考虑如何阻止电脑访问。可能的方法包括重定向到另一个页面,或者在当前页面显示提示信息,并阻止进一步加载原内容。这里需要注意的是,如果使用重定向,应该确保在检测到设备类型后立即执行,避免页面内容加载后再跳转,影响用户体验。 另外,还要考虑代码的放置位置。通常,这样的脚本应该放在HTML的<head>部分,以便在页面加载前执行,避免页面内容闪烁。同时,可能需要使用CSS来隐藏原页面内容,直到检测完成,或者直接通过JavaScript动态加载内容。 还有,用户代理检测的可靠性问题。有些用户可能使用桌面浏览器但伪装成移动设备,或者反过来。但大多数情况下,用户代理是可靠的,特别是对于普通用户来说。如果用户需要更高的准确性,可能需要结合其他检测方法,比如检测屏幕尺寸、触摸事件等,但这样会增加复杂度。根据用户的要求,可能只需要基本的User Agent检测即可。 现在,我需要参考提供的引用内容。引用[2]提到使用Web Worker来处理多线程,但这里可能不需要。引用[3]中的JavaScript代码示例展示了如何控制音频元素,这可能不相关。但引用中提到的JavaScript的使用是相关的,因为需要编写脚本来检测设备。 接下来,具体的步骤可能是: 1. 在HTML的<head>部分添加JavaScript代码,用于检测设备类型。 2. 使用navigator.userAgent属性获取用户代理字符串。 3. 使用正则表达式检测是否包含移动设备的关键词,如“Mobi”、“Android”、“iPhone”等。 4. 如果检测到是电脑访问,则执行阻止操作,比如重定向到错误页面或显示阻止信息。 5. 如果是手机访问,则允许加载正常内容。 可能的代码结构: 在HTML中,添加一个脚本,检查用户代理。如果是电脑,可能显示一个全屏的提示,并阻止访问;否则,继续加载页面。 需要注意的是,如果使用重定向,可能会影响SEO,因为搜索引擎爬虫可能被阻止。但用户的需求是阻止电脑访问,可能暂时不考虑这一点。 另外,CSS的媒体查询也可以用来辅助,但JavaScript更可靠,因为媒体查询只能基于屏幕尺寸,而某些平板或调整浏览器窗口大小的设备可能会有误判。 现在,我需要编写具体的代码示例。例如,当检测到不是移动设备时,使用document.write覆盖整个页面内容,显示提示信息,并停止加载其他资源。 但更好的做法可能是动态修改DOM,比如隐藏原内容,显示提示信息。或者使用window.location.href进行重定向。 此外,还需要考虑JavaScript被禁用的情况,但这种情况用户可能无法处理,只能作为补充措施。 总结步骤: - 检测User Agent中的移动设备关键词。 - 根据检测结果决定是否阻止访问。 - 阻止方式可以是重定向或显示提示信息。 现在,我需要确保代码的正确性。例如,正则表达式是否正确匹配移动设备,如何处理不同浏览器的差异,比如iPad的User Agent是否包含Mobi等。可能需要调整正则表达式以覆盖更多情况。 例如,使用以下正则表达式: !/Mobi|Android/i.test(navigator.userAgent) 如果返回true,说明是桌面设备,因为移动设备通常包含Mobi或Android(但需要注意iPad可能没有Mobi,所以可能需要添加iPad的检测)。 或者,使用更全面的检测方法,如: const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); 但根据用户的需求,可能需要区分平板和手机,但用户可能希望允许所有移动设备,包括平板。因此,可能直接使用上述正则表达式。 当检测到不是移动设备时,执行阻止操作。 最后,将代码嵌入HTML文件中,并测试在不同设备上的效果。</think>要实现通过设备类型控制网页访问权限,可以通过检测用户代理(User Agent)实现设备判断。以下是具体实现步骤: ### 解决方案代码 ```html <!DOCTYPE html> <html> <head> <script> // 设备类型检测函数 function checkDevice() { const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); if (!isMobile) { // 阻止电脑访问并显示提示 document.body.innerHTML = '<h1 style="text-align:center; margin-top:50px;">请使用手机访问本页面</h1>'; document.body.style.backgroundColor = "#f0f0f0"; window.stop(); // 停止加载其他资源 } } checkDevice(); // 页面加载时立即执行检测 </script> </head> <body> <!-- 手机用户可见的正常内容 --> <h1>欢迎访问移动端专属内容</h1> <p>这是专为手机用户设计的页面</p> </body> </html> ``` ### 实现原理说明 1. **设备检测**:通过`navigator.userAgent`获取浏览器标识信息,使用正则表达式匹配移动设备关键词: ```javascript /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i ``` 该表达式覆盖主流移动设备(包括iOS、Android、Windows Phone等)[^2]。 2. **访问控制逻辑**: - 检测到电脑访问时,立即清空页面内容`document.body.innerHTML`并显示提示信息 - 使用`window.stop()`终止后续资源加载 - 手机用户可正常浏览`<body>`内定义的内容 3. **执行时机**:脚本放在`<head>`标签顶部,确保在页面渲染前执行检测逻辑,避免出现内容闪烁。 ### 注意事项 - 该方法无法阻止通过修改浏览器User Agent的访问 - 平板设备(如iPad)会根据具体User Agent被判定为移动设备 - 可通过补充屏幕尺寸检测增强准确性: ```javascript const isSmallScreen = window.innerWidth < 768; if (!isMobile || !isSmallScreen) { ... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值