我在博客上定期收到路径/#!
,我想知道为什么会这样(因为它与我博客上的任何网址/资源都不匹配)。用户代理说它总是IE7浏览器,它从多个不同的IP地址请求这个。如果我可以忽略这一点,或者我需要对此做些什么,我正在尝试解决问题。
我特别想知道以下内容:
我可以忽略它吗?
如果相关,则该站点托管在windows azure中并在MVC4上运行。
答案 0 :(得分:7)
这是一个hash-bang URL。它们被一些AJAX Web应用程序使用,如Facebook和Twitter。谷歌为他们提供了一些special treatment,以使通常不可抓取的AJAX网站可以抓取。
但是,如果您的网站没有运行使用它们的应用,则您不应该看到它们。你绝对不应该在服务器端看到它们,因为重点是URL中#
之后的所有内容都是fragment identifier,并且应该在请求之前被用户代理剥离来自服务器的URL。
编辑:如果我不得不猜测请求此类网址的是什么,我会说这可能是一些有问题的机器人。事实上,它显然假装是IE,这表明它可能没有任何好处;也许它是某种类型的spambot。无论如何,这样的请求很可能是无害的,你可以忽略它们。如果它让你感觉更好,你总是可以设置一个重写规则来明确拒绝它们,例如:
RewriteRule \x23 - [F]
这应该拒绝任何包含#
字符且包含403 Forbidden错误的URL请求。
答案 1 :(得分:2)
好吧,#
是一个有效的锚,只是意味着“页面”。你也可以做'!'锚,例如。
<!-- some html here -->
<a href="#!">Click me!</a>
<!-- lots more html -->
<div id="!">
Wooaaaah!
</div>
所以我的猜测是你可以安全地忽略它......但这只是猜测;)