drupal用.htaccess 改进性能,删除多余的请求参数

July 21st, 2011 by 黎 浩江 No comments »

下面的内容DIY性比较大, 并不适合所有drupal站

1.今天查看了一下boost的cache文件夹
多了很多莫明其妙的文件,似乎是boost在生成主页的分页时候出错了,在page=100&option后多了一堆东西,正常来说分页只会结束到page=100而不会再有后面的option
也有可能是hack,说不定.
即很多:http://oddsfun.com?page=1&options=…..
目的是使上述的URL301转向至http://oddsfun.com?page=1
在.htaccess上,仅次于rewrite engine on 处,任何的rewrite前(301转向尽量放前面,据说)
RewriteCond %{QUERY_STRING} page=([0-9]+)& [NC]
RewriteRule ^(.*)$ %{REQUEST_URI}?page=%1 [R=301,L]

2.将drupal内部的301改为由.htaccess做301转向,这样可以节约不少性能
前段时间,我为每一个node都启动了tag,即增加了node/nid/album,每个node都有个相册
结果很快,bluehost(空间商)发邮件给我,说我的文件夹太多了
没办法只能将node/nid/album的结构全改为album/nid了
但这样问题就来了,如果直接删除node/nid/album的结构,google估计会认为我在耍他,
于是只能想到301转向了,当时.htaccess的语法我不懂,懒,直接用php在drupal里写header
郁闷的情况来了,现在在google查到的album 都是直接指向node/nid/album的,这样如果用默认的boost的.htaccesss规则,仍然会不断请求drupal,
目的,在.htaccess中,将所有的node/nid/album 转向为album/nid,而不经过drupal
如http://oddsfun.com/node/100/album –> http://oddsfun/album/100 (这些网址不存在,我别一个drupal站才这样)
RewriteCond %{REQUEST_URI} node/[0-9]+/album [NC]
RewriteRule node/([0-9]+)/album(.*)$ /album/$1$2 [R=301,L]
另:为drupal站写多些tag,即在node的页面多些tag,能很快的增加站点的收录量,灰常实用,我都计划给我所有的drupal站使用3~5个tab了,这样就相当于一个内容有N个翻版.

http://trackself.com

博导定下来了!这两年的计划。

July 17th, 2011 by 黎 浩江 7 comments »

多少年了,读了多少年了,该有个尽头了吧。

在二院读影像了,就是那历史上的全国第一家西医,孙中山在那里读过的医院,你能想象到有多破了吧,哈哈。
不过麻,那边的影像还真不错,我是瞧着我导师去的,37岁不到就升博导了,今年才38左右,这绝对是灰常有前途的,跟着他也许我能“改命”吧。我是他名义上的第一个博士(听说有个师兄读别的博导的但事实上是跟他的,还有个师姐明年转博)。选他与我以往的投资策略差不多,投现在质优的,不如冒点风险投将会爆涨的,反正绝不会亏。

1.攻读博士学位的计划,这两年,如果不拼,那过两年后估计想当个好医生也不能的。
只有两年,要完成别人3年研+2年博的事,几乎为不可能。所以只能自己自觉去学了,还好我一直自学能力尚算过关。
临床是要泡的,这是医生的根本,这两年只能安排少些时间在电脑上了。还好,现在网站上的项目已经慢慢地开始赚美金了,应该不需要太花时间了。希望两年后,能在临床上过关,科研上有所建树吧。

2.和文文的关系应该定下来了。没想到啊,原来我这么专一,哈哈,曾经没有女人的时候,我想:要是以后交女朋友,不断更新是最好的。没想到,当真的交往后,才发现,自己是个傻瓜。老爸也说该找个时间双方家长见个面了。

3.网站的计划:做多几个采集网站,使得毕业后的收益大约是每天100美金吧,现在已经成功了一个,有了开始,以后就好办了。人生,总得有点物质基础,才能让自己和家人过得踏实,这两年,基本不会再接项目了吧,除非是耗时短的,不需要再编程的能重用以往代码的。

4.读书:钱财、学识开始慢慢积累了,但人生要圆满,还是得多读点人文类的书,提高点人生智慧及自身修养。这两年,希望能将《易经》下游的几个大的派系如儒、道、释、法等的一些经典涉猎几本吧,不能被曾新晨那鸟人拖太远了。两年后,希望自己够格看《易》吧。

5.打坐:时间有点不够啊,但晚上打打坐,第二天会精神些,这样才能提高效率,用同样的时间做更多的事。要坚持啊。希望两年后我能练成双盘打2小时。

6.还有啥呢,对了,还有要为两年后谋个出路。英文是要背的,准备个英文GRE早上背背吧,这样两年后如果想出国逛逛,也是有个语言基础吧,反正早上起床也会看看今天的收入(无利不早起那句话实在太!)。还好英文一向还行,主要是自学计算机的缘故。

7.这两年继续在工作生活中学习做人的哲学。所谓先学做人再学做事,还记得这话是小P跟我说的。希望这家伙的公司能越办越好吧,不过其实不用担心,这家伙有这么高的人生觉悟,想来公司办得不会差到哪去。听说他要去上海了,有点可惜。以后回校吃饭也少了个好朋友。

hack drupal url function:使性能进一步提升

July 17th, 2011 by 黎 浩江 No comments »

hack逻辑:URL中含有非ASCII字符的文章,是不能被boost静态化化的,要还原成node/$id 这样的形式。

前言:站点描述

1.http://oddsfun.com

这是一个drupal写的采集站,同内容不同域名几个站每天正在为我创汇5美金,由于是采集,所以必然会采到一些不一定理想的内容。

我的初衷是都采英文,但这个站让我郁闷的是采了些俄文的内容,为了SEO,又不好删。

2.我的drupal环境,BOOST模块装上了,其余的没什么特别

3.站点是放在3.95美元/月的bluehost上的,上面还有5个drupal站和本wordpress站,文章量大约是10万吧。所以我做的每一步都必须考虑到性能,否则说不定bluehost明天就会停止我的服务器了(已经被band过一次了所以才天天考虑性能优化,有钱就换!)。

性能方面:

1.在bluehost上用drupal得有觉悟,必须要静态化,SEO是要装pathauto的

2.非ASCII的URL是不能被boost静态化的(只在国外服务器是如此,国内服务器是支持的)

3.所以,目的很简单,URL中含有非ASCII字符的文章,不能被静态化,这时要将URL还原成原drupal URL, 即从http://oddsfun.com/content/非ASCII 还原为 http://oddsfun.com/node/xxxx

注意了,这不是多此一举,因为我的文章还是以英文为主的

这样还原后,就使得所有文章都会有静态化了,否则每次请求到这些文章,那服务器的消耗真是!

代码:

include/common.inc 1494行(drupal6 , drupal7估计也是差不多)

elseif (!empty($path) && !$options['alias']) {

/*hack

$path = drupal_get_path_alias($path, isset($options['language']) ? $options['language']->language : ”);

*/

$temppath = drupal_get_path_alias($path, isset($options['language']) ? $options['language']->language : ”);

if (!preg_match(‘@[^/a-z0-9_\-&=,\.:\s]@i’, $temppath)) {

$path = $temppath;

}

}

最终的结果可以看

Posted in drupal

Tags:

linux-xargs drupal & boost :性能加强,删除某文件夹下最旧的1440个文件

June 25th, 2011 by 黎 浩江 No comments »

今天狠狠地熟了一下linux,有个需求:删除某文件夹(cache)下最旧的1440个文件.

最终结果:

find /linuxwebdirectory/cache/normal  -type f | xargs ls -tr | head -1440 | xargs rm

xargs一个强大的linux命令。

我有1个站,目前的IMP大约是8000~10000/天的,大约20000个node吧,使用的是drupal和boost

由于站点刚建成不到2个月,很多代码在改,但又不能每次一改代码又将boost的cache文件全删除,这样做会导致我的低价服务器bluehost失去响应。

于是只能想一个办法,在一定的时间内,将boost的所有内容慢慢删除(不使用cron也是为了节约性能,文件一多的时候,使用cron删除boost的文件就是个痛苦)

目前我正在使用该命令,使得我的网站cache目录大约每20天完全换一次血,又能保证文件的更新性。

drupal分享:根据关键字过滤comment的模块

June 20th, 2011 by 黎 浩江 4 comments »

下载连接:http://trackself.com/code/trackselftools_comment.tar

直接解压安装,我没有写管理界面,要增加需要过滤的关键字,修改里面的“filters”数组即可.

drupal的确有很多的comment过滤模块,但我自己试用后,并没有wordpress的过滤好用,由于我的drupal的comment使用了cap验证,所以一般的comment都应该是人手post上去的了,但仍然有些广告在上面。于是就写了这个模块。

代理很简单:只是调用了hook_comment

function trackselftools_comment_comment(&$a1, $op) {

if ($op == ‘validate’) {

$filters=array(

//注意的是,单词一定要够长啊,例如如果想过滤abc,最好写成”空格abc空格”

“insurance”,

);

//print “<pre>”;print_r($a1);print “</pre>”;exit;

$subject=strtolower($a1["subject"]);

$comment=strtolower($a1["comment"]);

foreach($filters as $filter){

$filter=strtolower($filter);

if(count(explode($filter,$subject))>1 || count(explode($filter,$comment))>1){

form_set_error(“comment”,”comment should not include “.$filter);

}

 

}

 

}

 

//cache_clear_all_like(drupal_url(array(‘id’ => $nid)));

}

 

 

« 1 ... 12 13 14 15 16 17 18 19 20 21 22 ... 79 »