301重定向正则表达式实例应用

修改.htaccess文件达到301重定向的目的,其中如果想将domain.com域名下的所有url转到www.domain.com下,规则如下:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

但实际用到的301转向并不是如此简单的应用,诸如程序调整目录,文件命名规则的改变,就需要用到正则表达式来设置相关的301重定向了,几个简单的301重定向正则表达式的例子如下:

RewriteRule ^(.*?)(\/\d.*)$ $1_bing$2  [R,L]
RedirectMatch ^/archiver/(.*)$ /bbs/archiver/$1 [L]
RedirectMatch ^/chrome/([a-zA-Z]+)/(.*).html$ /chrome/$1-$2.html [L]
RedirectMatch ^/msn/([a-z]+)/(\d{4})([0-9]+).html$ /live/$1/2009$3.html [L]


([a-z]+)表示多位的小写英文字母。
([a-zA-Z]+)表示多位的大小写英文字母。

([0-9])表示单个的阿拉伯数字;
([0-9]{1,2})表示两位的阿拉伯数字;
([0-9]+)表示多位的阿拉伯数字;

(\d)同上一个。
(\d{4})表示多位的阿拉伯数字的前四位数字。
(\b)表示单词的开始或结束; (\w)表示任意的字母或数字或下划线或汉字;
(\s)表示任意的空白符;

(.*)表示任意字符。

redirect 301 /go/search.htm /data/google.html
redirect permanent /go/search.htm /data/google.html
其中redirect permanent和redirect 301应用效果相同。

更多正则表达式的内容看这里吧http://zh.wikipedia.org/wiki/正则表达式
月光博客自己总结的常用正则表达式http://www.williamlong.info/archives/433.html

小妞一岁八个月的风雨江湖

  小妞到昨天是整整一岁九个月了,从她出生初闯江湖起,每一天都和我们分享着她不同的成长快乐。她用自己的眼睛、嘴巴和手脚努力的探求世界,因为太过积极,会时不时的经历风险。不过说来在她一周八个月的三十来天中,确实也学到了太多的东西,这里就以图文记录下来吧。





一、荡起了秋千

  
小家伙第一次玩荡秋千就很兴奋,当时一岁五个多月,两只手紧紧的抓着铁链子,开心溢于言表;荡秋千很简单,但是对于一个小孩子,体验一种全新的运动方式,需要自己来控制平衡,但他们喜欢这种挑战,快乐自在其中。现在小家伙玩荡秋千很熟练并乐此不疲。



(一岁七个多月的妞)





二、学会了蹬小三轮车

  
1.妞虽然从八个月的时候就喜欢坐着这个桔黄色的儿童三轮车上晃悠,但无奈,脚蹬车蹬前行、控制车把方向这两项高技术含量的技能太难掌握了,于是骑车就成了做做样子了,你看她那小样:



(八个月的妞坐在车上也不亦悦乎)

  
2.经过一年时间的艰苦历练,小家伙终于可以蹬着小三轮车满屋跑了,当她第一次成功的蹬着脚蹬子往前走的喜悦,我想她心里一定狠狠的说:终于把你这个家伙拿下啦。



(妞:我可以在家里骑车兜风啦:P)





三、玩遍各式各样的滑梯套餐

  
1.少年宫的滑梯,第一次还老老实实的玩那最初级的小滑梯和旋转滑梯,在为她流畅的滑下来,不用再做保护而欣慰。





   2.结果没几天的时间,再去的时候那组滑梯的各个组件都被她自己充满好奇心的玩了一遍,而不需要我们做辅助。



(从这里爬上去)



(从这里滑下来)



(穿越绳洞)



(穿越绳洞2)





(虽然是有保护的独木桥,小妞走起来一样小心翼翼)



四、能清楚无误的从1数到10了

  
1.这同样是一个贯穿了几个月的学习工程,从开始一岁时走路说的“一、二、一”,到后来真正开始数数。但她的成绩始终是“1、3、5、6、7、8、9、10”或者“1、3、6、7、8、9、10”,2、4是她坚持要落下不数的数字。



(瞧,一岁时的傻样)

  
2.等她到一岁八个半月的时候,这项刷新她自己的数学学习史的记录终于出现了,小妞子自己突然就能完整的从1数到10了,不过你可别被她的假象所迷糊,事实上,物体的数量,她只能掌握到3个,当有4个李子放到她前面的时候,她就会蒙着说七个或者八个。





五、开始完整的唱出儿歌

  
妞子妈在小家伙很小的时候就经常给她唱童谣、儿歌;在一岁八个多月的时候突然就有了收获,一次在户外玩的开心的小妞很自然的唱出了童谣“小白兔,白又白,……”,没几天就有学会了“小老鼠,上灯台,……”。也终于可以听到小人奶声奶气的说出更多完整的话来,大家开心自然难免。







六、可以用筷子吃饭了

  
小妞好像有些能吃辣,比如烤串、鸭脖子带点辣味都能接受,这不又吃起了麻辣烫,我和她娘惊奇的发现,她用筷子夹起麻辣烫来轻松平常。看来她几个月来在餐桌上自己用筷子糟蹋饭菜也算有了成绩,恭喜一下吧。



(这对妞来说也算大快朵颐了)

dedecms5.1升5.31需要注意的小地方

dedecms是一款很不错的开源的cms,但在使用中出现小问题,到官网论坛去交流互动很差。不过,很难得的是很多用dedecms的朋友会把自己应用的一些心得公之于blog或bbs。这样通过搜索引擎就可以找到自己想要的东西了。

我在dedecms5.1升5.31的时候也碰到了两个怪异的小问题:

1. dede5.31数据表中litpic字段数值比5.1时要小,这样升级就会有损失,只要在升级前修改u.createtable.sql文件中litpic的值大一些,我改成了120。

2. 升级完成之后,不知为什么会自动写入一篇ID为11111111的文章,你再发文章ID就会累计为11111112,而不是从你原来的文章ID上累积。这时只要在数据库中删掉ID为11111111的文章数据,在dede_arctiny表中将Autoindex的数值改为你的最大文章ID+1就可以了。

3. 文章页边栏的推荐内容、热点内容不显示内容,需要在dedecms管理后台-系统基本参数-性能选项的“id 文档ID,content 标签最终内容”,改为id(原为content ),执行完该操作重新生成文章页即可。

4. dedecms5.31的文章副栏目功能是默认关闭的,需要到dede后台-系统设置-系统基本参数-性能选项页面,选上"是否启用副栏目"即可。但副栏目的文章不会在父栏目或者频道页显示。解决这个问题,需要修改dedecms安装目录下的/include/taglib/arclist.lib.php的文件第178行的内容为(该修改由网友georgegodman提供):

//if($CrossID=='') $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).')';
//else $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).','.$CrossID.')';
if($CrossID=='') $orwheres[] = ' (typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).'))';
else $orwheres[] = ' (typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.'))';

5. dede5.31发布文章时的来源、作者方式和5.1已经不一样了,如果不想用默认的方式,可以修改dedecms安装目录下的/dede/article_add.php文件的第95行处:
//对保存的内容进行处理
if(empty($writer))$writer=$cuserLogin->getUserName();
if(empty($source))$source='未知';
改为
//对保存的内容进行处理
if(empty($writer))$writer='佚名';
if(empty($source))$source='网络';

6. 将频道、栏目的链接改为目录,而不是目录下的index.html。可以修改include/channelunit.func.php文件内容:

//$reurl = $typedir.'/'.$defaultname;
注释掉上面一行,改为:
$reurl = $typedir.'/';

7. 通过dede管理后台-核心-频道模型-自由列表管理生成Google Sitemap,添加内容如下图(该方法由网友kig提供):


每页记录数:5000,此处可以修改为一个比你的网站文章数大一些的数值。
循环内的单行记录样式(InnerText)内容为:

<url>
<loc>[field:arcurl function="Gmapurl(@me)"/]</loc>
<lastmod>[field:senddate function="strftime('%Y-%m-%d',@me)"/]</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
其中<changefreq>为更新频率,可以根据自己的实际情况修改。