【问题标题】:Magento - prevent from browsing without rewriteMagento - 防止浏览而不重写
【发布时间】:2013-02-12 10:22:14
【问题描述】:

有人(使用多个 IP 地址)浏览我的商店时遇到问题:

example.com/catalog/category/view/id/$i

我打开了 URL 重写,所以通常的人类浏览看起来“友好”:

example.com/category_name.html

因此,问题是 - 如何防止使用“旧”(未重写)网址浏览商店,只允许“友好”网址?

这非常重要,因为它使用了数百个线程,这导致商店工作非常缓慢。

【问题讨论】:

    标签: magento url-rewriting ddos


    【解决方案1】:

    由于有许多随机 IP 地址,显然您不能只阻止来自单个或一小组地址的访问。您可能需要实现一些以某种方式唯一标识此爬虫的日志记录(可能通过浏览器代理,或者可能巧妙地使用 Modernizr javascript 库)。

    一旦您能够区分此爬虫的一些唯一标识符,您可能可以使用.htaccess 中的规则(如果它是用户代理的东西)来重定向或以其他方式阻止它们消耗您的服务器的魅力。

    此 SO 问题提供了有关用户代理规则的详细信息。

    Block all bots/crawlers/spiders for a special directory with htaccess

    【讨论】:

    • 根据@Spyro 管理他的电子商务公司的方式,阻止所有机器人/爬虫可能不是一个好主意......我们有来自供应商的爬虫会爬取我们的网站以检查许多事情,从页面可用性(没有 404)和正确的库存状态等...如果您要销售 2500 件他们的产品,他们应该能够检查它们。像这样阻塞交通是半危险的,因为很难清除“友谊赛”......
    • 当然,这就是为什么我建议实施一些日志来检查这个特定爬虫的唯一标识符。如果这是一个合法的爬虫,它可能会带来一些好处,但如果它会使他的网站速度减慢到实际人无法使用的程度,那么该爬虫应该被阻止,因为它具有侵入性。如果爬虫是非法的,并且它有一个唯一的标识符,那么它需要被展示门。
    【解决方案2】:

    如果蜘蛛爬取给定模式的所有网址:

    example.com/catalog/category/view/id/$i
    

    那么您可以在.htaccess 中删除这些网址。重写是从category.html -> /catalog/category/view/id/$i 内部进行的,因此,您只需阻止机器人。

    【讨论】:

    • 我已经尝试过了,但是当 dir 不存在并且其他规则将这些规则重写为前端控制器的实际调用时,什么规则会阻止 url?
    • 如果你没有写得不好的模块,每个模块都应该使用 category.html 链接进行重定向 (301,302)。所以你可以屏蔽这个网址——我想。你可以尝试这样的事情:deny all
    【解决方案3】:

    一旦重写......他们就在那里。出于多种原因,它们存储在 Mage 数据库中。一种是爬虫,例如爬取您的网站的爬虫。另一个是可能将旧页面添加为书签的用户。人们已经想出了许多方法来清理您的重定向(Google) ...但就目前而言,在 Magento 中,一旦它们到达那里,使用 Magento 就不容易管理。

    我可能会建议生成一个新的site map 并将其提交给影响您网站的爬虫。这个爬虫不仅会爬取大量不需要的页面,还会看到重复的内容(坏事)。

    【讨论】:

    • 我检查了IP,其中大部分属于法国的OVH托管公司。如果我错了,现在纠正我,但我怀疑合法的爬虫正在使用托管服务器来工作...... ;)
    • 此外,我的商店从它诞生的第一天就开启了 URL 重写。因此,我怀疑某人的书签中可能有“旧”链接。至于站点地图,我已经有了,谷歌在这里不是问题。
    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2012-06-11
    • 2019-02-05
    • 1970-01-01
    • 2011-12-08
    相关资源
    最近更新 更多