Archive for April, 2009

Google Analytics Tracking Code 跟踪产品信息的js写法

<!– Google Analytics Tracking Code – Provided by PM Tian – START –>

<script type=”text/javascript”><!–
var gaJsHost = ((“https:” == document.location.protocol) ? “https://ssl.” : “http://www.”);
document.write(unescape(“%3Cscript src=’” + gaJsHost + “google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E”));
// –></script>

<script type=”text/javascript”><!–
try {
var pageTracker = _gat._getTracker(“UA-425001-1″);
pageTracker._setDomainName(“.dhgate.com”);
pageTracker._setVar(“Real Buyer”);

pageTracker._addTrans(
“1234″,                                     // Transaction ID
“Mountain View”,                            // PayPal|Capinfo
“11.99″,                                    // Total
“1.29″,                                     // Tax, N/A
“5″,                                        // Shippingfee
“San Jose”,                                 // City
“California”,                               // State
“USA”                                       // Country
);

pageTracker._addItem(
“1234″,                                     // Order Number (PO)
“DD44″,                                     // Item Code
“T-Shirt”,                                  // Product Name
“Green Medium”,                             // Category Code
“11.99″,                                    // Price – required
“1″                                         // Quantity – required
);

pageTracker._trackTrans();
} catch(err) {}
// –></script>

<!– Google Analytics Tracking Code – Provided by PM Tian – END –>

No Comments

用geo查IP这个。。粉简单。。

inc文件在这里http://geolite.maxmind.com/download/geoip/api/php/geoip.inc 应该留着这个能更新一下
更精确的在 http://geolite.maxmind.com/download/geoip/api/php/geoipcity.inc
数据文件在

http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

  1. #!/usr/bin/php -q
  2. <?php
  3. // This code demonstrates how to lookup the country by IP Address
  4. include("geoip.inc");
  5. // Uncomment if querying against GeoIP/Lite City.
  6. // include("geoipcity.inc");
  7. $gi = geoip_open("/usr/local/share/GeoIP/GeoIPCity.dat",GEOIP_STANDARD);
  8. echo geoip_country_code_by_addr($gi, "24.24.24.24") . "\t" .
  9.      geoip_country_name_by_addr($gi, "24.24.24.24") . "\n";
  10. echo geoip_country_code_by_addr($gi, "80.24.24.24") . "\t" .
  11.      geoip_country_name_by_addr($gi, "80.24.24.24") . "\n";
  12. geoip_close($gi);
  13. ?>

1 Comment

QQWry.Dat读取

  1. <?php
  2. define(‘QQWRY’ , ‘/var/www/QQWry.Dat’ ) ;
  3.  
  4. class TQQwry
  5. {
  6.     var $StartIp = 0;
  7.     var $EndIp   = 0;
  8.     var $Country = ;
  9.     var $Local   = ;
  10.  
  11.     var $CountryFlag = 0; // 标识 Country位置
  12.                           // 0×01,随后3字节为Country偏移,没有Local
  13.                           // 0×02,随后3字节为Country偏移,接着是Local
  14.                           // 其他,Country,Local,Local有类似的压缩。可能多重引用。
  15.     var $fp;
  16.  
  17.     var $FirstStartIp = 0;
  18.     var $LastStartIp = 0;
  19.     var $EndIpOff = 0 ;
  20.  
  21.     function getStartIp ( $RecNo ) {
  22.         $offset = $this->FirstStartIp + $RecNo * 7 ;
  23.         @fseek ( $this->fp , $offset , SEEK_SET ) ;
  24.         $buf = fread ( $this->fp , 7 ) ;
  25.         $this->EndIpOff = ord($buf[4]) + (ord($buf[5])*256) + (ord($buf[6])* 256*256);
  26.         $this->StartIp = ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])*256*256) + (ord($buf[3])*256*256*256);
  27.         return $this->StartIp ;
  28.     }
  29.  
  30.     function getEndIp ( ) {
  31.         @fseek ( $this->fp , $this->EndIpOff , SEEK_SET ) ;
  32.         $buf = fread ( $this->fp , 5 ) ;
  33.         $this->EndIp = ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])*256*256) + (ord($buf[3])*256*256*256);
  34.         $this->CountryFlag = ord ( $buf[4] ) ;
  35.         return $this->EndIp ;
  36.     }
  37.  
  38.     function getCountry ( ) {
  39.  
  40.         switch ( $this->CountryFlag ) {
  41.             case 1:
  42.             case 2:
  43.                 $this->Country = iconv(‘gbk’,‘utf-8′,$this->getFlagStr ( $this->EndIpOff+4)) ;
  44.                 $this->Local = ( 1 == $this->CountryFlag )? : $this->getFlagStr ( $this->EndIpOff+8);
  45.   break ;
  46.             default :
  47.                 $this->Country = iconv(‘gbk’,‘utf-8′,$this->getFlagStr ($this->EndIpOff+4)) ;
  48.                 $this->Local =   $this->getFlagStr ( ftell ( $this->fp )) ;
  49.  
  50.         }
  51.     }
  52.  
  53.  
  54.     function getFlagStr ( $offset )
  55.     {
  56.  
  57.         $flag = 0 ;
  58.         while ( 1 ){
  59.             @fseek ( $this->fp , $offset , SEEK_SET ) ;
  60.             $flag = ord ( fgetc ( $this->fp ) ) ;
  61.             if ( $flag == 1 || $flag == 2 ) {
  62.                 $buf = fread ($this->fp , 3 ) ;
  63.                 if ($flag == 2 ){
  64.                     $this->CountryFlag = 2 ;
  65.                     $this->EndIpOff = $offset4 ;
  66.                 }
  67.                 $offset = ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])* 256*256);
  68.             }else{
  69.                 break ;
  70.             }
  71.  
  72.         }
  73.         if ( $offset < 12 )
  74.             return ;
  75.         @fseek($this->fp , $offset , SEEK_SET ) ;
  76.         return $this->getStr();
  77.     }
  78.     function getStr ( )
  79.     {
  80.         $str = ;
  81.         while ( 1 ) {
  82.             $c = fgetc ( $this->fp ) ;
  83.             if ( ord ( $c[0] ) == 0  )
  84.                break ;
  85.             $str .= $c ;
  86.         }
  87.         return $str ;
  88.     }
  89.  
  90.  
  91.     function qqwry ($dotip) {
  92.         $nRet;
  93.         $ip = ip2long ( $dotip );
  94.         $this->fp= fopen(QQWRY, "rb");
  95.         if ($this->fp == NULL) {
  96.               $szLocal= "OpenFileError";
  97.             return 1;
  98.  
  99.           }
  100.         @fseek ( $this->fp , 0 , SEEK_SET ) ;
  101.         $buf = fread ( $this->fp , 8 ) ;
  102.         $this->FirstStartIp = ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])*256*256) + (ord($buf[3])*256*256*256);
  103.         $this->LastStartIp  = ord($buf[4]) + (ord($buf[5])*256) + (ord($buf[6])*256*256) + (ord($buf[7])*256*256*256);
  104.  
  105.         $RecordCount= floor( ( $this->LastStartIp$this->FirstStartIp ) / 7);
  106.         if ($RecordCount <= 1){
  107.             $this->Country = "FileDataError";
  108.             fclose ( $this->fp ) ;
  109.             return 2 ;
  110.         }
  111.         $RangB= 0;
  112.         $RangE= $RecordCount;
  113.         // Match …
  114.         while ($RangB < $RangE-1)
  115.         {
  116.           $RecNo= floor(($RangB + $RangE) / 2);
  117.           $this->getStartIp ( $RecNo ) ;
  118.  
  119.             if ( $ip == $this->StartIp )
  120.             {
  121.                 $RangB = $RecNo ;
  122.                 break ;
  123.             }
  124.                 if ( $ip > $this->StartIp)
  125.             $RangB= $RecNo;
  126.           else
  127.             $RangE= $RecNo;
  128.         }
  129.         $this->getStartIp ( $RangB ) ;
  130.         $this->getEndIp ( ) ;
  131.  
  132.         if ( ( $this->StartIp  <= $ip ) && ( $this->EndIp >= $ip ) ){
  133.             $nRet = 0 ;
  134.             $this->getCountry ( ) ;
  135.             //这样不太好…………..所以……….
  136.             $this->Local = str_replace(array("(我们一定要解放台湾!!!)","CZ88.NET"), "", $this->Local);
  137.  
  138.         }else {
  139.             $nRet = 3 ;
  140.             $this->Country = ‘未知’ ;
  141.             $this->Local = ;
  142.         }
  143.         fclose ( $this->fp ) ;
  144.         return  $this->Country.‘ ‘.$this->Local ;
  145.     }
  146. }
  147.  
  148.  
  149.     $wry = new TQQwry ;
  150. if(isset($_GET[‘IP’]) && strlen($_GET[‘IP’])>7)
  151. echo $wry->qqwry ( $_GET[‘IP’] );
  152. ?>

No Comments

使用php的curl类,检测socket5代理服务器可用性

设计初衷当然是用php curl bind不一个sokcet5去访问一个随机页面(公网)这个页面的功能就是通过一个md5来验证sokcet5服务器是否真的可用
A服务器通过 socket5发出http://xxxx/a.php?t=randkey
B服务器,echo md5($_GET['t'] . mykey);
A服务器拿到content以后也用相同算法算一个$resut看看是不是等于B服务器的echo值,如果一样,就是success 不一样就是failed
Read the rest of this entry »

No Comments

通过IP反查相同IP域名的功能

排名第一的当然是http://www.myipneighbors.com/不过近期升级遇到了麻烦停止服务2个多月了,但是它的站长并没有放弃,正在努力寻求解决中.

排名第二的ip地址反查域名网站我给了国内的http://ip.wen.la/不为别的就因为它的信息全,同一IP在国内的反查域名网站中它查出来的域名最多.不过网站速度有待改进.

排名第三的我给了http://www.ip-domain.com.cn/这个网站全体仿制了排名第一的http://www.myipneighbors.com/不过在排名第一的网站暂时无法提供服务的情况这个山寨版的IP反查域名网站无疑是我们最佳选择.(也是国人办的网站山寨无处不在)

排名第四的http://domainbyip.com/是国外IP反查域名的佼佼者,速度也不错,如果我不是中国人的话我会把它排在第二位.

排名第五的http://whosonmyserver.com/不得不承认这个网站查出来的同服务器域名是最多的但是速度也是最慢的一个如果抛弃速度而言的话这是个不可多得反查域名网站,期待着尽快解决速度问题.

排名第六的http://www.robtex.com/是一个提供服务很全的反查网站可以反查dns a记录 mx记录等这里不做详细介绍了因为查出来的内容对于绝大部分的人没有什么用处.

排名第七的http://www.114best.com/ip/国人比较熟悉但是同一IP查出的站点比较少,数据量还有待加强,不过我相信通过努力会解决的毕竟你的身后有13亿人支持你.

排名第八的http://iy8.net/也是国人做的,数据量比较强大不过和排名第三的http://www.ip-domain.com.cn/有点类似.可能来自同一数据库吧.

No Comments

获取alax排名的php程序

第二个参数是表示排名是上升还是下降中~~

  1. <?php
  2. $GLOBALS[‘HOST’]=parse_url($GLOBALS[‘URL’]);
  3. $body=file_get_contents(‘http://www.alexa.com/siteinfo/’.$GLOBALS[‘HOST’][‘host’]);
  4. preg_match("@<div class=\"data (.*)\">(.*)</a></div>(\r|\n|\s|\t)+<div class=\"label\">Traffic Rank@",$body,$dd);
  5. echo "alax traffic rank {$dd[2]} [{$dd[1]}]";
  6. ?>

No Comments

获取google最后一次cache的时间~~

这个对网站来说也有点用处

  1. <?php
  2. $body=file_get_contents(‘http://toolbarqueries.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=cache:’.urlencode($GLOBALS[‘URL’]));
  3. preg_match("@<base href=(.*)t is a snapshot of the page as it appeared on (.*) GMT.@",$body,$dd);
  4. echo "Last Cache in Google on {$dd[2]} GMT.";
  5. ?>

No Comments

获取Google收录量~~

这东西用多了会被google干掉~~

  1. <?php
  2. $body=file_get_contents(‘http://www.google.com/search?hl=en&safe=off&q=site%3A’.urlencode($GLOBALS[‘URL’]).‘&btnG=Search’);
  3. preg_match("@<b>Web</b></div><p> Results <b>(.*)of about <b>(.*)</b> from@",$body,$dd);
  4. echo "Web results of about {$dd[2]}<BR>";
  5. ?>

No Comments

获取Google PR的程序..

  1. <?php
  2. define(‘GOOGLE_MAGIC’, 0xE6359A60);
  3. function zeroFill($a, $b)
  4. {
  5.     $z = hexdec(80000000);
  6.         if ($z & $a)
  7.         {
  8.             $a = ($a>>1);
  9.             $a &= (~$z);
  10.             $a |= 0×40000000;
  11.             $a = ($a>>($b-1));
  12.         }
  13.         else
  14.         {
  15.             $a = ($a>>$b);
  16.         }
  17.         return $a;
  18. }
  19. function mix($a,$b,$c) {
  20.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
  21.   $b -= $c; $b -= $a; $b ^= ($a<<8);
  22.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  23.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  24.   $b -= $c; $b -= $a; $b ^= ($a<<16);
  25.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
  26.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));  
  27.   $b -= $c; $b -= $a; $b ^= ($a<<10);
  28.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  29.   return array($a,$b,$c);
  30. }
  31. function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
  32.     $purl=‘info:’.urlencode($url);
  33.     $url=strord($purl);
  34.     if(is_null($length)) {
  35.         $length = sizeof($url);
  36.     }
  37.     $a = $b = 0x9E3779B9;
  38.     $c = $init;
  39.     $k = 0;
  40.     $len = $length;
  41.     while($len >= 12) {
  42.         $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
  43.         $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
  44.         $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
  45.         $mix = mix($a,$b,$c);
  46.         $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
  47.         $k += 12;
  48.         $len -= 12;
  49.     }
  50.     $c += $length;
  51.     switch($len)              /* all the case statements fall through */
  52.     {
  53.         case 11: $c+=($url[$k+10]<<24);
  54.         case 10: $c+=($url[$k+9]<<16);
  55.         case 9 : $c+=($url[$k+8]<<8);
  56.           /* the first byte of c is reserved for the length */
  57.         case 8 : $b+=($url[$k+7]<<24);
  58.         case 7 : $b+=($url[$k+6]<<16);
  59.         case 6 : $b+=($url[$k+5]<<8);
  60.         case 5 : $b+=($url[$k+4]);
  61.         case 4 : $a+=($url[$k+3]<<24);
  62.         case 3 : $a+=($url[$k+2]<<16);
  63.         case 2 : $a+=($url[$k+1]<<8);
  64.         case 1 : $a+=($url[$k+0]);
  65.          /* case 0: nothing left to add */
  66.     }
  67.     $mix = mix($a,$b,$c);
  68.     /*——————————————– report the result */
  69.     return sprintf ("http://toolbarqueries.google.com/search?client=navclient-auto&hl=en&ch=6%s&ie=UTF-8&oe=UTF-8&features=Rank&q=%s", $mix[2], $purl);
  70. }
  71. //converts a string into an array of integers containing the numeric value of the char
  72. function strord($string) {
  73.     for($i=0;$i<strlen($string);$i++) {
  74.         $result[$i] = ord($string{$i});
  75.     }
  76.     return $result;
  77. }
  78. if(!isset($_GET[‘URL’]))
  79.   $GLOBALS[‘URL’]="http://www.fabrichina.net";
  80. else
  81.   $GLOBALS[‘URL’]=$_GET[‘URL’];
  82. $url_to_parse = GoogleCH($GLOBALS[‘URL’]);
  83. $body=file_get_contents($url_to_parse);
  84. echo $body;
  85. ?>
  86.  

这样会得到PR你随便用 explode ‘:’ 一把就出来最后结果了!

No Comments

ubuntu下wine运行pl/sql 图表黑色(不显示)的解决方法

哎。。这么一改,真是老爽了!!wine下运行pl/sql

No Comments

TIDY DEFINE KEY AND VALUE

就看见了一堆值,始终没看见define 的key是啥~~~好在能打出来

Array
        (
            [TIDY_TAG_UNKNOWN] => 0
            [TIDY_TAG_A] => 1
            [TIDY_TAG_ABBR] => 2
            [TIDY_TAG_ACRONYM] => 3
            [TIDY_TAG_ADDRESS] => 4
            [TIDY_TAG_ALIGN] => 5
            [TIDY_TAG_APPLET] => 6
            [TIDY_TAG_AREA] => 7
            [TIDY_TAG_B] => 8
            [TIDY_TAG_BASE] => 9
            [TIDY_TAG_BASEFONT] => 10
            [TIDY_TAG_BDO] => 11
            [TIDY_TAG_BGSOUND] => 12
            [TIDY_TAG_BIG] => 13
            [TIDY_TAG_BLINK] => 14
            [TIDY_TAG_BLOCKQUOTE] => 15
            [TIDY_TAG_BODY] => 16
            [TIDY_TAG_BR] => 17
            [TIDY_TAG_BUTTON] => 18
            [TIDY_TAG_CAPTION] => 19
            [TIDY_TAG_CENTER] => 20
            [TIDY_TAG_CITE] => 21
            [TIDY_TAG_CODE] => 22
            [TIDY_TAG_COL] => 23
            [TIDY_TAG_COLGROUP] => 24
            [TIDY_TAG_COMMENT] => 25
            [TIDY_TAG_DD] => 26
            [TIDY_TAG_DEL] => 27
            [TIDY_TAG_DFN] => 28
            [TIDY_TAG_DIR] => 29
            [TIDY_TAG_DIV] => 30
            [TIDY_TAG_DL] => 31
            [TIDY_TAG_DT] => 32
            [TIDY_TAG_EM] => 33
            [TIDY_TAG_EMBED] => 34
            [TIDY_TAG_FIELDSET] => 35
            [TIDY_TAG_FONT] => 36
            [TIDY_TAG_FORM] => 37
            [TIDY_TAG_FRAME] => 38
            [TIDY_TAG_FRAMESET] => 39
            [TIDY_TAG_H1] => 40
            [TIDY_TAG_H2] => 41
            [TIDY_TAG_H3] => 42
            [TIDY_TAG_H4] => 43
            [TIDY_TAG_H5] => 44
            [TIDY_TAG_H6] => 45
            [TIDY_TAG_HEAD] => 46
            [TIDY_TAG_HR] => 47
            [TIDY_TAG_HTML] => 48
            [TIDY_TAG_I] => 49
            [TIDY_TAG_IFRAME] => 50
            [TIDY_TAG_ILAYER] => 51
            [TIDY_TAG_IMG] => 52
            [TIDY_TAG_INPUT] => 53
            [TIDY_TAG_INS] => 54
            [TIDY_TAG_ISINDEX] => 55
            [TIDY_TAG_KBD] => 56
            [TIDY_TAG_KEYGEN] => 57
            [TIDY_TAG_LABEL] => 58
            [TIDY_TAG_LAYER] => 59
            [TIDY_TAG_LEGEND] => 60
            [TIDY_TAG_LI] => 61
            [TIDY_TAG_LINK] => 62
            [TIDY_TAG_LISTING] => 63
            [TIDY_TAG_MAP] => 64
            [TIDY_TAG_MARQUEE] => 65
            [TIDY_TAG_MENU] => 66
            [TIDY_TAG_META] => 67
            [TIDY_TAG_MULTICOL] => 68
            [TIDY_TAG_NOBR] => 69
            [TIDY_TAG_NOEMBED] => 70
            [TIDY_TAG_NOFRAMES] => 71
            [TIDY_TAG_NOLAYER] => 72
            [TIDY_TAG_NOSAVE] => 73
            [TIDY_TAG_NOSCRIPT] => 74
            [TIDY_TAG_OBJECT] => 75
            [TIDY_TAG_OL] => 76
            [TIDY_TAG_OPTGROUP] => 77
            [TIDY_TAG_OPTION] => 78
            [TIDY_TAG_P] => 79
            [TIDY_TAG_PARAM] => 80
            [TIDY_TAG_PLAINTEXT] => 81
            [TIDY_TAG_PRE] => 82
            [TIDY_TAG_Q] => 83
            [TIDY_TAG_RB] => 84
            [TIDY_TAG_RBC] => 85
            [TIDY_TAG_RP] => 86
            [TIDY_TAG_RT] => 87
            [TIDY_TAG_RTC] => 88
            [TIDY_TAG_RUBY] => 89
            [TIDY_TAG_S] => 90
            [TIDY_TAG_SAMP] => 91
            [TIDY_TAG_SCRIPT] => 92
            [TIDY_TAG_SELECT] => 93
            [TIDY_TAG_SERVER] => 94
            [TIDY_TAG_SERVLET] => 95
            [TIDY_TAG_SMALL] => 96
            [TIDY_TAG_SPACER] => 97
            [TIDY_TAG_SPAN] => 98
            [TIDY_TAG_STRIKE] => 99
            [TIDY_TAG_STRONG] => 100
            [TIDY_TAG_STYLE] => 101
            [TIDY_TAG_SUB] => 102
            [TIDY_TAG_SUP] => 103
            [TIDY_TAG_TABLE] => 104
            [TIDY_TAG_TBODY] => 105
            [TIDY_TAG_TD] => 106
            [TIDY_TAG_TEXTAREA] => 107
            [TIDY_TAG_TFOOT] => 108
            [TIDY_TAG_TH] => 109
            [TIDY_TAG_THEAD] => 110
            [TIDY_TAG_TITLE] => 111
            [TIDY_TAG_TR] => 112
            [TIDY_TAG_TT] => 113
            [TIDY_TAG_U] => 114
            [TIDY_TAG_UL] => 115
            [TIDY_TAG_VAR] => 116
            [TIDY_TAG_WBR] => 117
            [TIDY_TAG_XMP] => 118
            [TIDY_NODETYPE_ROOT] => 0
            [TIDY_NODETYPE_DOCTYPE] => 1
            [TIDY_NODETYPE_COMMENT] => 2
            [TIDY_NODETYPE_PROCINS] => 3
            [TIDY_NODETYPE_TEXT] => 4
            [TIDY_NODETYPE_START] => 5
            [TIDY_NODETYPE_END] => 6
            [TIDY_NODETYPE_STARTEND] => 7
            [TIDY_NODETYPE_CDATA] => 8
            [TIDY_NODETYPE_SECTION] => 9
            [TIDY_NODETYPE_ASP] => 10
            [TIDY_NODETYPE_JSTE] => 11
            [TIDY_NODETYPE_PHP] => 12
            [TIDY_NODETYPE_XMLDECL] => 13
        )

No Comments

firefox的seo 工具,好不好用你自己看把。。

http://tools.seobook.com/seo-toolbar/#

No Comments

网址规范化问题最新解决方法

网址规范化一直是困扰站长以及搜索引擎的一个问题。据估计,网上有10%-30%的URL是内容相同但URL不一样的不规范化网址。

这就造成几个问题。比如:

  • 对站长来说,多个URL存在分散了页面权重,不利于排名。
  • 对搜索引擎来说,浪费资源,浪费带宽。
  • 搜索引擎发现多个网址内容相同时,不会惩罚,而会尽可能找出那个应该是规范化的网址。但程序毕竟只是程序,可能出错,挑出来的可能不是站长想要的那个规范化网址。
  • 网站上网址规范化问题太严重的话,也可能影响收录。一个权重不很高的域名,能收录的总页面数字是有限的。搜索引擎把资源花在收录不规范的网址上,留下给真正不同内容的资源就减少了。

要解决URL规范化问题也有很多选项,比如:

Read the rest of this entry »

No Comments