正则表达式教程

为了写.htaccess的rewrite留存

正则表达式30分钟入门教程

Tags:

星期四, 18 3 月, 2010 网址 没有评论

njava迁往米国BURSTNET VPS

上帝保佑

Tags:

星期二, 16 3 月, 2010 服务器 没有评论

欢迎网站第一批访问者各路蜘蛛,爬虫

蜘蛛的启示

一只蜘蛛在断墙处结了网,把家安了下来,但是它的生活并没有安宁,因为它常常会遭受风雨的袭击。
又是这么一天,大雨来临,它的网又一次遭受劫难。大雨刚过,这只蜘蛛向墙上支离破碎的网艰难地爬去。由于墙壁潮湿,它爬到一定的高度就会掉下来。他一次次的向上爬,一次次的又掉下来。
一直在里面避雨的3个人看到蜘蛛爬上去又掉下来的情景,开始讨论起来,他们的观点却大不一样。
第一个人看到后,叹了一口气,自言自语的说:“哎,我的一生不正如这只蜘蛛吗?我们的境况就是这样,虽然一直都在忙忙碌碌可结果却一无所得。看来我的命运和这只蜘蛛一样也是无法改变的。”于是,他继续沉迷于颓废之中,日渐消沉。
第二个人在一旁静静地看了一会儿,不屑一顾地说道:“这只蜘蛛真愚蠢,为什么不从旁边干燥的地方绕一下爬上去呢?以后我可不能向它那样愚蠢。再遇到棘手的问题时,我一定要用头脑认真思考,不能一味地埋头苦干,尽量寻找解决问题的捷径。”从此,他变得聪明起来。
第三个人专注的看着屡败屡战的蜘蛛,他的心灵为之深深地震撼了,他在想:“一只小小的蜘蛛,竟然有如此执着而顽强的精神,有这样的精神,就一定可以取得成功。我真应该向这只蜘蛛学习!”受这只蜘蛛的启发,他从此坚强无比。
大道理:善于发现,善于思考,处处都有成功力量的源泉。其实成功的本质就蕴藏在人的心内,总想着成功的人,在什么地方都能受到启迪。

第一批光顾本博的访问者,Yandex,Google,Sogou,Yahoo都来了

77.88.27.25 - - [13/Mar/2010:09:40:55 -0800] "GET /njava-category/%e9%9f%b3%e4%b9%90/feed HTTP/1.1" 200 1753 "-" "Yandex/1.01.001 (compatible; Win16; I)"
66.249.68.76 - - [13/Mar/2010:09:47:01 -0800] "GET /sitemap.xml.gz HTTP/1.1" 304 173 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
220.181.94.216 - - [13/Mar/2010:10:16:19 -0800] "GET /njava-68/feed HTTP/1.1" 200 842 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
77.88.27.25 - - [13/Mar/2010:10:17:29 -0800] "GET /njava-category/%e6%9c%8d%e5%8a%a1%e5%99%a8 HTTP/1.1" 200 4283 "-" "Yandex/1.01.001 (compatible; Win16; I)"
66.249.68.76 - - [13/Mar/2010:10:25:19 -0800] "GET /sitemap.xml.gz HTTP/1.1" 304 173 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
67.195.115.184 - - [13/Mar/2010:10:25:26 -0800] "GET /robots.txt HTTP/1.0" 200 355 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
67.195.115.184 - - [13/Mar/2010:10:25:28 -0800] "GET /Multimedia/Audio/Source/?S=A HTTP/1.0" 200 4116 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)"

找了找历史baidu昨天也来过

77.88.27.25 - - [12/Mar/2010:16:49:04 -0800] "GET /njava-tag/ddos HTTP/1.1" 200 3863 "-" "Yandex/1.01.001 (compatible; Win16; I)"
123.125.66.108 - - [12/Mar/2010:16:49:19 -0800] "GET /robots.txt HTTP/1.1" 200 355 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"
66.249.68.76 - - [12/Mar/2010:16:49:24 -0800] "GET /njava-77/feed HTTP/1.1" 200 831 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Tags: ,

星期六, 13 3 月, 2010 Web 没有评论

freebsd常用状态信息命令

systat 实时查看各种信息

systat -pigs 猪头进程占用CPU
systat -iostat 硬盘IO
systat -swap 交换分区
systat -mbufs 网络缓冲区
systat -vmstat 虚拟内存
systat -netstat 网络
systat -icmp ICMP协议
systat -ip IP协议
systat -tcp TCP协议
systat -ifstat 网卡

显示PCI总线设备信息

pciconf -lv

显示内核加载的模块

kldstat -v

显示指定模块

klsdstat -m ipfilter

即插即用设备

pnpinfo

显示设备占用的IRQ和内存地址

devinfo -u
cpu
sysctl -a|grep cpu
sysctl -a|grep sched 查看使用的调度器

虚拟内存

vmstat

硬盘

gstat
systat -iostat
iostat

网卡

ifconfig
systat -ifstat

网络

netstat
sockstat
tcpdump
trafshow

Tags: ,

星期六, 13 3 月, 2010 服务器 没有评论

freebsd的观察系统状况命令systat

systat [-display] [更新-时间]
display system statistics 观察系统状况

-display          The - flag expects display to be one of: icmp, icmp6,
ifstat, iostat, ip, ip6, mbufs, netstat, pigs, swap,
tcp, or vmstat.  These displays can also be requested
interactively (without the ``-'') and are described in
full detail below.

例如

%systat -vm 1
    1 users    Load  5.04  4.35  3.92                  Mar 13 23:58

Mem:KB    REAL            VIRTUAL                       VN PAGER   SWAP PAGER
        Tot   Share      Tot    Share    Free           in   out     in   out
Act 2749488   20628 10344444    60420  167684  count     2
All 2792768   25576 14629708    76304          pages     4
Proc:                                                            Interrupts
  r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt     21 cow    8236 total
  2     140 471       38k 9180 135k  225  63k 6927   6135 zfod        ata1 irq15
                                                          ozfod   225 mpt0 irq26
34.4%Sys   3.1%Intr 59.3%User  0.3%Nice  2.8%Idle        %ozfod  4005 cpu0: time
|    |    |    |    |    |    |    |    |    |    |       daefr  4006 cpu1: time
=================++>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-    2162 prcfr
                                      1312 dtbuf     7597 totfr
Namei     Name-cache   Dir-cache    100000 desvn     9460 react
   Calls    hits   %    hits   %     53487 numvn          pdwak
   22102   21938  99                 24392 frevn          pdpgs
                                                          intrn
Disks   da0   da1 pass0 pass1                      501792 wire
KB/t  15.88  5.75  0.00  0.00                     2965052 act
tps     241     7     0     0                      331332 inact
MB/s   3.73  0.04  0.00  0.00                      143876 cache
%busy    38     3     0     0                       23808 free

查看是那头猪头进程在消耗cpu

%systat -pigs

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   |||||||||||||

                    /0%  /10  /20  /30  /40  /50  /60  /70  /80  /90  /100
njava    php-cgi XXX
njava    php-cgi X

Tags: ,

星期六, 13 3 月, 2010 服务器 没有评论

Linux tail 命令详解

用途

从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。

语法

标准语法

tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

要以逆序显示行

tail [ -r ] [ -n Number ] [ File ]

描述

tail 命令从指定点开始将 File 参数指定的文件写到标准输出。如果没有指定文件,则会使用标准输入。 Number 变量指定将多少单元写入标准输出。 Number 变量的值可以是正的或负的整数。如果值的前面有 +(加号),从文件开头指定的单元数开始将文件写到标准输出。如果值的前面有 -(减号),则从文件末尾指定的单元数开始将文件写到标准输出。如果值前面没有 +(加号)或 -(减号),那么从文件末尾指定的单元号开始读取文件。

Number 变量用于确定计数的起点的单元类型由 -b、-c、-k、-m 以及 -n 标志确定。如果没有指定其中的任何一个标志,那么 tail 命令就会读取指定文件的最后十行,并将其写到标准输出。这与在命令行输入 -n 10 是相同的。

-m 标志在单字节和双字节字符环境中提供了一致的结果。当输入是包含多字节字符的文本文件时应谨慎使用 -c 标志,因为产生的输出可能不从字符边界开始。

标志

-b Number

从 Number 变量表示的 512 字节块位置开始读取指定文件。

-c Number

从 Number 变量表示的字节位置开始读取指定文件。

-f

如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File 参数,并且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长。

-k Number

从 Number 变量表示的 1KB 块位置开始读取指定文件。

-m Number

从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。

-n Number

从 Number 变量表示的行位置开始读取指定文件。

-r

从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式打印整个文件。如果文件大于 20,480 字节,那么 -r 标志只显示最后的 20,480 字节。

-r 标志只有与 -n 标志一起时才有效。否则,就会将其忽略。

退出状态

该命令返回下列的退出值:

0

成功完成。

>0

出现错误。

示例

要显示 notes 文件的最后十行,输入:

tail notes要指定从 notes 文件末尾开始读取的行数,输入:

tail  -n 20 notes

要从第 200 字节开始,每次显示一页 notes 文件,输入:

tail  -c +200 notes | pg

要跟踪文件的增长,输入:

tail  -f accounts

这显示 accounts 文件的最后十行。tail 命令继续显示添加到 accounts 文件中的行。显示会一直继续,直到您按下 Ctrl-C 按键顺序来停止。

文件

包含 tail 命令。

/usr/bin/tail

Tags:

星期六, 13 3 月, 2010 服务器 没有评论

discuz后台设置对seo的影响

1 首页文件名设置,统一首页URL

解决http://www.njava.com/和http://www.njava.com/index.php 对se权重的影响

全局>站点信息>首页文件名

设为论坛的主域名或主目录。

以njava.com为例,

网站URL是http://www.njava.com/,

那么这个首页文件名也设为http://www.njava.com/,默认是index.php

这样,站内到主页的链接和外部链接就一致了。

好处:

对于相同内容的两个页面,SE会选择一个权重高的做为首选,给予高的排名,显示在搜索结果中,而另一个排名很低或不收录。这一过程需要一定的时间判断。貌似这样也没有什么问题,但是,却分散了权重。

像上面的例子,http://www.njava.com/http://www.njava.com/index.php 两个页面虽然是同一个内容,外链一般链接到主域名上,内链却链接到index.php文件上,虽然都有了很高的PR,但同样的内容,把链接分散到两个URL上,分散了权重,没有必要。

为了SEO,不要选择个人资料页面(space.php)静态化

1.个人资料页面都是雷同的东西。很少有人会写自我介绍,所以造成了大量内容相似的网页。

2.默认情况下是不允许游客访问个人资料页面的,所以会得到的提示信息页,discuz又没有对这类页面加上meta robots 禁止收录,这就产生很多相同内容的页面。

Tags: , , ,

星期五, 12 3 月, 2010 Web 一条评论

discuz页面内部优化

1 discuz title,meta 标签优化

discuz的默认设置

<title>$navtitle $bbname $seotitle - Powered by Discuz!</title>
<meta name="keywords" content="{$metakeywords}$seokeywords" />
<meta name="description" content="$metadescription $bbname $seodescription - Discuz! Board" />

这一模板是应用到 主页 版块列表页 帖子内容页 三类页面的,这样会产生些问题
1.seotitle为后台标题附加字,会使所有帖子页中title变成 标题+版名+站名+标题附加字,太冗长了,标题重复率太高(当然后台不设置此项内容就没问题)。
2.seokeywords为后台全局设置的关键字,会在全站的页中重复,关键字没个性,堆积。
3.seodescription:后台全局设置的说明属性,会在主页和每个版块列表页显示。

优化后的目标,各页只显示自己独特简洁的title和meta信息:

1.主页:title是站名+标题附加字;keywords和description是后台“全局》优化设置”中的值
2.列表页:title是版名;meta是后台“版块》版块管理”中设置的“版块关键字和版块简介”
3.帖子页:title是 标题+站名;keywords是tag标签;description是原来自动截取的内容

#修改方法
当然这些值都是DZ原来实现了的,只是显示的有些混乱,有些变量在不同页面中也改变了用途,如果修改各个程序比较麻烦,这里用了一个不标准的土方法,只需修改一个文件:

将模板文件header.htm中原来<title>至<meta naem=”description”各行替换如下:

<title>$navtitle $bbname <!--{if empty($navtitle)}-->$seotitle<!--{/if}--></title>
$seohead
<!--{if empty($navtitle)}-->
<meta name="keywords" content="$seokeywords" />
<meta name="description" content="$seodescription" />
<!--{elseif empty($metadescription)}-->
<meta name="keywords" content="$metakeywords" />
<meta name="description" content="$seodescription" />
<!--{else}-->
<meta name="keywords" content="$metakeywords" />
<meta name="description" content="$metadescription" />
<!--{/if}-->

2 修改header.htm模板,去除logo的H2标签

Tags: , , ,

星期五, 12 3 月, 2010 Web 2 Comments

discuz修改版块列表页,为帖子内容页生成唯一地址

帖子页的URL形式有很多,我们可以通过修改viewthread.php和archive给内容页上canonical URL,都指向静态URL形式来集中权重。

但是,这个伪静态地址也不是唯一的:thread-{tid}-{page}-(forumpage).html,由内容页URL组成可见最后一段数字是代表帖子在这个版块列表的第几页,当新帖子不断增加,老帖会被挤到第二页,第三页…这样它的URL就会不断地变化。

解决方法:

方法:修改forumdisplay.php

将$extra = rawurlencode(“page=$page$forumdisplayadd”);

改为$extra = rawurlencode(“page=1$forumdisplayadd”);

这样,最后一段固定为1,但有个缺点,用户从这个帖子只能返回列表页的第一页了。

discuz seo悄悄地在改变:上面的问题还是以观察收录结果是发现的,不过discuz7.0的global.func.php文件,发现对帖子页进行静态化地址替换的函数有所变化

 
function rewrite_thread($tid, $page = 0, $prevpage = 0, $extra = '') {

return '<a href="thread-'.$tid.'-'.($page ? $page : 1).'-'

.($prevpage && !IS_ROBOT ? $prevpage : 1).'.html"'.stripslashes($extra).'>'; }

也就是说,现在discuz会针对搜索引擎,把最后一段固定生成为1来解决这个问题。虽然是针对用户和搜索引擎分别处理,但内容都是一样的,并没有欺骗,应该还是没问题的。

另外,在伪静态替换中发现对robots进行了特殊处理,说明动态地址没有处理这个问题。

Tags: ,

星期五, 12 3 月, 2010 Web 没有评论

discuz给redirect.php做301跳转

类似redirect.php?tid=7&goto=lastpost这种形式URL的页面的子内容和thread-1-1-1.html一样的,但URL形式不一样,SE会当成重复内容。

这种URL形式会出现在主页、版块列表页的最后发表或最后回复位置,discuz7以前版本的上一主题、下一主题等也是此种形式的URL,现在虽然没有,但在代码中还能找到那些参数。

为什么不禁止这种URL形式的索引?

1.主要是不能控制别人链接到这种形式,如果禁止索引这种形式的URL就浪费了链接,所以要做301跳转,把链接和权重转移到标准的静态形式。

2.链接形式出现在首页,不禁止或许可以加快录

给redirct.php做301跳转

有的情况下程序要查找才能得到要显示的tid,所以只能修改程序,用php代码实现301跳转。

打开 redirect.php 文件,将 require_once DISCUZ_ROOT.’./viewthread.php’; 替换为

 
header("HTTP/1.1 301 Moved Permanently");
header( "Location: thread-{$tid}-1-1.html" );
exit();

文件中共有四处,都修改完就可以访问论坛,检查下效果了

Tags: , ,

星期五, 12 3 月, 2010 Web 没有评论
1LMooBmUE153Wnd3zDryWvDyXxQudbFxDr