作者归档:朱哥哥

用php实现网站全站301重定向到另一个域名

什么是301转向? 301转向(又叫301跳转,301重定向)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,500内部请求错误,等等。网站做转向的方法:网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META. REFRESH网页META刷新,等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。301转向的必要性当网页A用301重定向转到网页B时,搜索引擎可以肯定网页A永久的改变位置,或者说实际上不存在了,搜索引擎就会把网页B当作唯一有效目标。好处是,第一,没有网址规范化问题第二,也很重要的,网页A的PR网页级别会传到网页B第三,收录不会因为域名更换而变化. 实现 <?php $url="http://www.visualay.com".$_SERVER["REQUEST_URI"]; header("HTTP/1.1 301 Moved Permanently"); header ("Location:$url"); ?> 以上代码就是要实现的301跳转功能。只要将以上代码放到你需要跳转的页面的头部即可,注意:以上代码前面不能有任何的输出. 测试: 要测试就用curl这个小软件来检查.#curl -I http://www.ctdz.com.cn/index.phpHTTP/1.0 301 Moved PermanentlyDate: Tue, 06 May 2008 06:27:39 GMTServer: apacheLocation: http://www.visualay.com/index.php如见到上面的HTTP/1.0 301 Moved Permanently时,就表示可以了.下次只要点相关的链接,会自动转向新的链接,搜索引擎也会自动更新成新的链接

发表在 Linux | 留下评论

第三周(20110315)

回顾一下上次课程 我们照抄了书上的程序: #include <reg51.h> void main( void ) { data unsigned char LedBuff; //定义无符号字符型变量LedBuff并存放在片内RAM中 for( ; ; ){ LedBuff=0×01 ; P1=LedBuff ; // 点亮接在P1.0上的LED Delay( 1000 ) ; // 调用延时函数 LedBuff=0×02 ; P1=LedBuff ; Delay( 1000 ) ; LedBuff=0×04 ; … 继续阅读

发表在 单片机教学 | 留下评论

第二周(20110301)

正式自我介绍 我来自企业 我是八路军武功队   我为什么要来上课 90后给企业带来的困惑 来看看我们企业未来的员工现在是什么状态 为企业的长期发展准备人才 传道、授业、解惑   企业和学校有什么不同 “要我学”和“我要学” 需求角色的变换(价值流向的变换) 生存的压力 无处不在的竞争 适者生存   继续第一个项目 出现了什么问题:     delay(1000)-> delay(10000) –> delay(100000) –> delay(30000) 100000=34464 ?! 300000=37856 !!! 软件设计过程中,会出现各种各样的问题,就算是老手也经常犯错。所以“调试”是软件开发的常态。 “DEBUG”概念,顺便引入一个话题:四代计算机技术   世界上第一台计算机ENIAC: 长30.48米,宽1米,占地面积约63平方米,30个操作台,约相当于10间普通房间的大小,重达30吨,耗电量150千瓦,造价48万美元。它包含了17,468 个真空管,7,200只晶体二极管, 70,000 只电阻器, 10,000 只电容器,1500个继电器,6000多个开关,每秒执行5000次加法或400次乘法。 … 继续阅读

发表在 单片机教学 | 留下评论

网页设计中的默认字体样式详解

浏览器默认的样式往往在不同的浏览器、不同的语言版本甚至不同的系统版本都有不同的设置,这就导致如果直接利用默认样式的页面在各个浏览器下显示非常不一致,于是就有了类似YUI的reset之类用来尽量重写浏览器的默认设置保证各个浏览器样式一致性的做法。 拿字体来说,各个浏览器默认的字体种类、字体大小和字体行高都不一样,比如IE8的中文版在Windows XP下显示网页时默认字体是宋体,而英文版肯定不会如此。所以我们需要统一设置默认的字体样式,以便实现一致的显示效果来保证设计的一致性和提高开发效率。 样式优先级通常用户看到的页面的样式会受到三层控制: 第一层是浏览器的默认样式第二层是网页定义样式第三层是用户自定义样式 和CSS一样,后面的优先级高于前面的,也就是说网页定义样式可以覆盖浏览器的默认样式,而用户自定义样式优先级最高。不过,当有 !important 时,网页样式可以覆盖用户自定义样式。用户!important > 网页!important > 用户 > 网页 > 浏览器默认。 字体:arial我们页面的绝大部分内容字符都是中文,毫无疑问目前为止在网页上最常用也是最通用的显示中文的字体是宋体,但是宋体在显示英文、数字和英文符号时过于糟糕,比如©字符,所以我们一般期望通过CSS来实现用更好的字体样式来显示它们,然后用宋体来显示中文和中文符号。 之所以选择arial是因为:Windows和Mac都预装了这款字体,应该是使用最广泛的网页字体了。它的潜在对手tahoma和helvetica就没有这么幸运了。视觉设计的专业人士可能会认为在Windows中使用tahoma、在Mac中使用helvetica更好,比如淘宝的默认字体样式是: font: 12px/1 Tahoma, Helvetica, Arial, “\5b8b\4f53″, sans-serif; 这是一个很不错的选择,但是你也会发现Google、YAHOO、Youtube、Bing甚至MSN的新版都使用arial作为第一默认字体。所以从美观和可读性上来讲arial应该是完全可以接受的。一般情况下设置font-family都会在最后设置通用字体足以保证其安全性,比如Google的设置为: font-family:arial,sans-serif; 但是至少在非中文版的Win7下当编码是GBK时,IE8会因sans-serif来渲染宋体,导致字体出现变形,这就是为什么淘宝需要在sans-serif前加上宋体而Google无需这样做的原因。因为中文字体的选择非常有限,所以目前所有的主流浏览器都设置使用宋体来显示中文。Baidu的首页和搜索结果页使用font-family:arial;可以从侧面说明这样做的安全性。可能有人注意到Firefox中国版默认显示的中文字体是微软雅黑,这是因为谋智网络擅自修改了用户自定义样式,不允许网页的样式覆盖浏览器设置的样式。也是由于类似的情况,我们要弹性设计网页非常重要。使用英文字体作为第一默认字体会导致的问题之一就是中英文以及符号混排时的对齐问题、通过设置行高和hasLayout能解决绝大部分情况,但是都不会很完美,如果把字体改成“宋体”能彻底的解决问题。很明显,这个问题只出现在IE上。所以,如果你的网站很少使用英文、数字和英文符号,那么直接设置 {font-family:\5b8b\4f53;} 也是很合理的选择。 大小:12px12px是宋体能显示的极限,虽然微软雅黑能显示更小的字体,但目前的应用环境尚未成熟。由于宋体基本上是目前显示中文唯一的通用Web字体,所以12px成为最常用的字体大小。我们当然可以依据产品的需要来修改这个默认值。不用考虑基于字体大小(em)的设计。在Chrome3.0之后的中文版中,字体大小最小值是12px,比如你设置最小字体为10px,最后也变成12px。行高:1.5倍这是一个经验值,不同的产品对这个值要求可能不同,但我们一般会设置最常用的为默认值。比如YUI的font中是 font:13px/1.231 arial,helvetica,clean,sans-serif; 即字体大小默认值是13px,行高是13*1.231=16.003px,默认的行高是默认字体的1.231倍。对于中文来说,常用的字体大小12px、14px、16px、18px等偶数大小,在IE6和IE7设置其行高也为偶数能解决一些特殊情况下的字体对其问题。在IE6和IE7中,行高值必须大于字体的2px才能保证字体的完整显示或当其作为链接时能有效显示下划线。设置line-height时,注意不要使用单位(包括%在内),因为子节点会继承经过运算后的line-height值,所以当使用单位后浏览器会把line-height计算成第一次定义的绝对值,而不会随着字体大小的变化而变化,而无单位的数值表示是所在容器的font-size的倍数,所以设置为无单位的数值是最佳选择。深入CSS 行高非常有利于理解line-height,值得一读。性能和效率大部分平台都有arial,减少浏览器的查找时间。代码最少,书写方便。arial基本上是名字最短的字体了,可以节约CSS的大小。所有的字母都小写,目前Google就是这样做的,好处是既可以编写更快也能提升Gzip压缩的效率。中文最好用unicode表示,比如使用宋体是 {font-family:\5b8b\4f53;} 使用微软雅黑是 {font-family:\5fae\8f6f\96c5\9ed1;} 这样的好处是避免编码问题,同时能得到所有的主流浏览器的支持。使用正确的字体种类写法,避免使用引号,这样可以缩小CSS的大小。中文字体可以按上一条方式来编写。未来通过对中英文及符号混排的测试, 我发现微软雅黑其实表现相当不错,包括英文数字和英文字符以及在IE6和IE7的显示效果上,但唯一的遗憾是在XP下如果安装了微软雅黑字体的用户没有打 … 继续阅读

发表在 WordPress | 留下评论

第一周(20110222)

什么是单片机? 简单地说,单片机就是在单一芯片上的完整的微电脑系统。 “完整的微电脑系统”的概念?   计算机系统的组成     单片机有什么用处? 单片机实现了电子产品的智能化 单片机简化了电子产品的设计 单片机降低了电子产品的成本 单片机改变了我们的生活 单片机无处不在   学好单片机的意义 可以深入理解计算机工作原理 学习底层硬件相关的编程 培养良好的程序风格 加深对高级语言的理解   单片机编程和PC编程的区别 单片机软件运行于裸机,和硬件密切相关 单片机资源受限(较少存储空间,有限的运算能力)   单片机编程语言 机器语言、汇编语言、高级语言的概念 当前的主流是C语言 一般用于单片机编程的C语言都是在标准ANSI C上面有所扩展,需要了解这些区别   关于Keil C51 对于51系列单片机,Keil C可能是最好的C编译器。 Keil是一家专门提供单片机开发工具软件的公司,由德国Keil Elektronik GmbH和美国Keil Software,Inc组成,2005年被ARM公司收购。据说只有23人。 Keil C51开发工具包括编译(C51)、汇编(A51)、连接(BL51)、库管理(LIB51)、调试/仿真(dScope)和集成环境(uVision)等。 … 继续阅读

发表在 单片机教学 | 留下评论

博弈论学习笔记

博弈论的七个原理 一、最小最大原理 (冯.诺依曼) 最小最大原理研究的是竞争问题。 如何在对方利益最大化时,自已的利益损失最小。 关键:创造多重损益点 — 失之东隅,得之桑榆 损益点: 双方利益的争夺点 如果只有一个损益点,当我们在这个损益点上没有优势时,要主动创造多个损益点 案例: 不列颠空战、围魏救赵 应用一 : 价格战 价格战的本质是同质化,造成顾客的关注点集中到价格,解决之道是差异化 差异化的理解:应该是多维差异化 一维差异化最后仍会趋同,多维差异化才没有趋同动机 案例: 沙滩卖矿泉水。 如果是直线型的沙滩,则两个卖矿泉水的人会趋向于互相靠近(争夺直线中点),而如果是环型的沙滩,则两个卖矿泉水的人没有动机趋同 应用二 : 讨价还价策略 多维谈判策略 – 引入多维损益点 买家: 可以引入 质量、数量 、付款方式 等 卖家: 赠品 二、纳什均衡原理 纳什均衡研究的是合作问题,其内涵是互为最优。 要分清事前优势和事后优势 三、逆向选择原理 信息优势未必会带来博弈优势,因为缺乏信息的一方会作逆向选择 … 继续阅读

发表在 杂记 | 留下评论

linux网络配置

直接编辑 /etc/network/interfaces : auto eth0 iface eth0 inet static address 192.168.0.8 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 DNS服务器配置文件 : /etc/resolv.conf nameserver 61.177.7.1 nameserver 221.228.255.1 nameserver 211.103.13.101 nameserver 211.138.200.69 相关: 激活/关闭网卡: ifup ifdown  或 ifconfig eth0 up/down

发表在 Linux | 留下评论

apache2命令概要

启动/停止/重启: apache2ctl  start/stop/restart 激活虚拟主机:a2ensite <site_name> 停用虚拟主机:a2dissite <site_name> site_name存在于/etc/apache2/sites_available目录中,激活实际上是在/etc/apache2/sites_enabled目录中做一个链接 激活模块:a2enmod <mod_name> 停用模块:a2dismod <mod_name> mod_name存在于/etc/apache2/mods_available目录中,激活实际上是在/etc/apache2/mods_enabled目录中做一个链接

发表在 Linux | 留下评论

常用linux命令备忘

激活服务:  sudo update-rc.d <service_name> defaults 安装GCC :  sudo apt-get install build-essential

发表在 Linux | 留下评论

ssh配置使用概要

ssh使用 在客户端生成一个密钥对: ssh-keygen -t dsa 默认情况下生成私钥~/.ssh/id_dsa和公钥~/.ssh/id_dsa.pub,将公钥文件拷贝或追加到服务端的~/.ssh/authorized_keys文件中,就可以建立不需口令的连接。 常用的客户端命令: ssh user@hostname     登录到主机 rsh user@hostname command  远程执行命令 scp user@hostname:filename  filname   远程拷贝文件(倒过来也行) ssh的密钥文件 ssh使用的密钥文件是在/etc/ssh/ssh_config和/etc/ssh/sshd_config文件中配置的,默认情况下,服务端的公钥文件为 ~/.ssh/authorized_keys 一般把生成的密钥对中的公钥拷贝或追加到这个文件中: cat id_dsa.pub >>authorized_keys ssh客户端默认的私钥文件为~/.ssh/id_rsa或~/.ssh/id_dsa或~/.ssh/identity,如果需要临时指定另一个文件,可用-i参数: ssh -i  key_filename  user@hostname rcp、rsh等命令也一样 rsa和dsa的区别 rsa基于大整数因子分解算法,dsa基于离散对数问题算法。dsa的安全性和算法实现性能要比rsa好,但是dsa只能用于数字签名,不能用于数据加密。

发表在 Linux | 留下评论