你在这里


URL

Apache中设置屏蔽IP地址和URL网址来禁止采集

James Qi 2012年11月23日 - 11:31 发布

  只要是建有数据量比较多的网站,几乎不可避免采集的情况,这方面我们已经有多年的对付经验,主要是通过分析Web访问日志,找到采集的规律,相应来设置屏蔽IP地址或者URL网址来解决。

  国内的Linux服务器上我们都安装了Squid作为Apache的前端缓存,所以我们遇到采集的情况就分析Squid的日志,在squid.conf文件中进行设置屏蔽,然后重启Squid服务就可以。

  近期租用的国外Linux服务器上默认是没有Squid的,我们也就只用了Apache作为Web服务器,修改了httpd.conf来让Apache的日志文件显示更详细的虚拟主机域名、User-Agent等信息,以便遇到采集的情况可以分析。

  前一阵子遇到来自固定某个或者某段IP的采集,我们就修改httpd.conf文件,在影响的主机设置中添加这样的代码:

Order Deny,Allow
Deny from 125.115.2.85
Deny from 91.228.196.234

  然后重启Apache服务就可以。

Drupal 7的URL中+加号、&符号的编码问题及解决

James Qi 2012年3月1日 - 23:46 发布

  去年在使用Drupal 6的时候,就发现用Pathauto自动生成的URL网站中,部分特殊字符会导致页面找不到,当时找到了解决办法,记录在这篇博文中《Drupal的Pathauto模块生成带有单引号、双引号、反斜杠URL问题及解决》。

  最近在使用Drupal 7的时候又遇到类似问题,这次不是单引号、双引号或者反斜杠,而是+(加号)和&(and符号)出了问题,自动的编码变成了%2B和%26,在浏览器中无法找到。如果手工修改为%252B和%2526则可以访问。

自由标签:

Drupal的Pathauto模块生成带有单引号、双引号、反斜杠URL问题及解决

James Qi 2011年8月3日 - 23:50 发布

  前一阵子导入的美国企业名录中有不少标题都带有单引号,例如:A J's Ribs A-Go-Go,用Drupal中的Pathauto模块生成的URL为:

http://ak.mingluji.com/business_directory/A_J%27s_Ribs_A-Go-Go

  可我却无法打开这个页面,报错page not found。我让同事专门把Pathauto设置中的各种字符都测试了一遍,单引号、双引号、反斜杠这3种无法正常显示,而其他的几十个(例如逗号、中括号、分号、句号等)都是正常的。好像这三个字符在转义符号中比较特别。

  有打开dev模块查看报错页面的数据库查询情况,发现这3个字符有时经过了两次转义,不知道怎么多出了一次,结果就找不到了。我自己对php、MySQL了解得并不多,写了封邮件询问网上的一位曾经给我推荐Drupal的朋友Nanyang Zhan,没想到很快就有答复,然后不断沟通了几个来回,终于是把问题解决了,我在path.inc中添加了3行来处理3个符号:

自由标签:

编写PHP程序实现Drupal中pathauto模块的批量生成URL别名(Alias)

James Qi 2011年2月10日 - 16:20 发布

  为了网站SEO的需要,我在Drupal中安装了第三方模块pathauto,用于在页面生成时自动产生一个带有关键词的URL别名。不过前一阵子导入数据的时候,pathauto的事先设置没有做好,必须在设置好了以后将前面不符合规范的别名都删除,然后重新生成。

  在菜单中有批量生成Alias的功能,但默认是每次生成50个,可以修改为几百,再多了就会超时报错,而且当需要重新生成的数量到10万的时候,需要在Web页面上操作数百次以上,很不现实,只有设法编个程序来做了。

  好在Drupal的用户数量很大,被数十万个网站采用,所以各种英文资料比较齐全,讨论留言中也可以找到很多有用信息。于是我搞了下面这个小程序来实现批量生成:

<?php
include_once './includes/bootstrap.inc';
include_once './sites/all/modules/pathauto/pathauto.inc';
include_once './sites/all/modules/pathauto/pathauto_node.inc';

自由标签:

订阅 RSS - URL