我猜其他所有人都希望相反,但我需要隐藏ASP.NET网站的“目录”结构。
因此我想到
使用robots.txt,如下所示......
用户代理:* 禁止:/
使用网址重写,制作虚假路径
禁用目录浏览。 (目录列表被拒绝......)
使用.ashx提供图片。
您可能建议的其他方式。
换句话说,我不喜欢有“downloader-structrure reader”的人剥离我的网站。
如您所见,缺少sekurity标签:)
P.S。我不关心SEO
答案 0 :(得分:2)
如果您希望用户能够浏览您的网站,您显然需要指向其他网页的链接。要(尝试)使抓取工具难以使用这些链接,您可以尝试在javascript中动态呈现所有链接。这意味着没有像浏览器那样完整DOM渲染的机器人将无法提取链接。但是,当然有人可以看看你的网站并构建一些东西,如果它们如此倾向就会解析链接。
如果要隐藏用户和/或机器人的目录结构,那么是的,您必须实现某种URL重写:
Outbound: /assets/images/image.jpg -> /somecode.jpg
Inbound: /somecode.jpg -> /assets/images/image.jpg
否则,他们将能够在浏览器中检查链接(无论是静态还是动态呈现)并确定目录结构。
答案 1 :(得分:1)
像wget -r
这样的网站下载器无论如何都会有效。它遵循链接而不关心目录(除了可以限制深度的事实)。如果您想要排除像Google这样的合法抓取工具,可以使用robots.txt。 wget和流氓爬行者不关心它。
唯一真正好的解决方案是要么需要登录(但仍然无法保护您免受那些只使用wget下载整个网站的人;他们只会向其提供登录信息/会话ID或者用令人讨厌的CAPTCHA(快速合法用户的烦恼)或使整个站点使用JavaScript / AJAX显示/加载内容来混乱你的内容。这使得用户体验更好(如果操作正确)并有效锁定大多数/所有抓取工具。