存档

‘网站优化’ 分类的存档

如何完整测试你的网站

2010年6月27日 岩岩魂   访问量: 572 没有评论

也许你用过一些“所见即所得”网页编辑器来进行网站的设计开发,但是却无法保证网站的访问者“所得即你所见”。那么你需要深入测试你的网站以确保访问者有一个良好的体验,不至于看都不想看就把它关掉。这里推荐了几种有用的工具来测试你的网站(网页)。

Browsershots
Browsershots提供了为你测试网页的在线服务,能够在不同的操作系统和不同的浏览器之中自动的捕获你的网站的截屏。你也可以选择是否在这些环境预览网页中的Flash,Java程序和JavaScript。
Browsershots现在是如此受欢迎以至于你在使用他们的截屏服务时不得不等待好几分钟的时间才能看到结果。

IE NetRenderer
IE NetRenderer是另一种工具,虽然速度比Browsershots快很多,但是只支持Internet Explorer的几种版本。基于Mac OS设计的网站则可以选择BrowsrCamp来测试,和Browsershots类似,但是只支持MAC OS的浏览器。

想看看你的网站在移动设备(BlackBerry or Windows Mobile)的小屏幕上是什么效果?Ok,让我们试试BrowserCam.另外一个比较好的选择是Opera Simulator,它可以让你在桌面上体验到Opera的Mobile版本。

相关信息: 使用 Opera Simulator 来解决网站受限的问题

一些上网者仍然在用很慢很原始的拨号上网,在发展中国家这些人群仍不在少数,且不容忽视。所以我们在设计网站时,要权衡考虑大多人网速的问题,不要滥用Javascript广告, 图形, CSS, Flash 动画这些元素让你的网站变得越来越慢哦。

Pingdom 是一种能够模拟网页如何被浏览器载入的工具。它能够显示一些动态数据(文件大小,载入时间)等等所有有可能导致你的网站变慢的因素。

其他的工具:
FireBug: 为Firefox设计,能显示让网站变慢的元素。

Print CSS:模拟PDF和打印效果。
 

原文地址:http://www.javaeye.com/news/1655

分类: 网站优化 标签:

深入浅出URL编码

2010年6月11日 岩岩魂   访问量: 827 没有评论
一、问题:
  编码问题是JAVA初学者在web开发过程中经常会遇到问题,网上也有大量相关的文章介绍,但其中很多文章并没有对URL中使用了中文等非ASCII的字符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明。本文将详细介绍由于在URL中使用了中文等非ASCII的字符造成乱码的问题。

1、在URL中中文字符通常出现在以下两个地方:
(1)、Query String中的参数值,比如http://search.china.alibaba.com/search/offer_search.htm?keywords=中国
(2)、servlet path,比如:http://search.china.alibaba.com/selloffer/中国.html

2、出现乱码问题的原因主要是以下几方面:
(1)、浏览器:我们的客户端(浏览器)本身并没有遵循URI编码的规范(http://www.w3.org/International/O-URL-code.html)。
(2)、Servlet服务器:Servlet服务器的没有正确配置。
(3)、开发人员并不了解Servlet的规范和API的含义。

二、基础知识:
1、一个http请求经过的几个环节:
浏览器(ie firefox)【get/post】------------>Servlet服务器------------------------------->浏览器显示
  编码 解码成unicode,然后将显示的内容编码 解码
(1) 浏览器把URL(以及post提交的内容)经过编码后发送给服务器。
(2) 这里的Servlet服务器实际上指的是由Servlet服务器提供的servlet实现ServletRequestWrapper,不同应用服务器的servlet实现不同,这些servlet的实现把这些内容解码转换为unicode,处理完毕后,然后再把结果(即网页)编码返回给浏览器。
(3) 浏览器按照指定的编码显示该网页。

  当对字符串进行编码和解码的时候都涉及到字符集,通常使用的字符集为ISO8859-1、GBK、UTF-8、UNICODE。

2、URL的组成:
域名:端口/contextPath/servletPath/pathInfo?queryString
说明:

1、ContextPath是在Servlet服务器的配置文件中指定的。
对于weblogic:
contextPath是在应用的weblogic.xml中配置。
 <context-root>/</context-root>
 
对于tomcat:
contextPath是在server.xml中配置。
<Context path="/" docBase="D:/server/blog.war" debug="5" reloadable="true" crossContext="true"/>

对于jboos:
contextPath是在应用的jboss-web.xml中配置。
<jboss-web>
  <context-root>/</context-root>
</jboss-web>

2、ServletPath是在应用的web.xml中配置。
<servlet-mapping>
  <servlet-name>Example</servlet-name>
  <url-pattern>/example/*</url-pattern>
</servlet-mapping>

2、Servlet API
我们使用以下servlet API获得URL的值及参数。
request.getParameter("name"); // 获得queryString的参数值(来自于get和post),其值经过Servlet服务器URL Decode过的
request.getPathInfo(); // 注意:pathinfo返回的字符串是经过Servlet服务器URL Decode过的。
requestURI = request.getRequestURI(); // 内容为:contextPath/servletPath/pathinfo 浏览器提交过来的原始数据,未被Servlet服务器URL Decode过。

3、开发人员必须清楚的servlet规范:
(1) HttpServletRequest.setCharacterEncoding()方法 仅仅只适用于设置post提交的request body的编码而不是设置get方法提交的queryString的编码。该方法告诉应用服务器应该采用什么编码解析post传过来的内容。很多文章并没有说明这一点。
(2) HttpServletRequest.getPathInfo()返回的结果是由Servlet服务器解码(decode)过的。
(3) HttpServletRequest.getRequestURI()返回的字符串没有被Servlet服务器decoded过。
(4) POST提交的数据是作为request body的一部分。
(5) 网页的Http头中ContentType("text/html; charset=GBK")的作用:
  (a) 告诉浏览器网页中数据是什么编码;
  (b) 表单提交时,通常浏览器会根据ContentType指定的charset对表单中的数据编码,然后发送给服务器的。
  这里需要注意的是:这里所说的ContentType是指http头的ContentType,而不是在网页中meta中的ContentType。

三、下面我们分别从浏览器和应用服务器来举例说明:
URL:http://localhost:8080/example/中国?name=中国
汉字 编码 二进制表示
中国 UTF-8 0xe4 0xb8 0xad 0xe5 0x9b 0xbd[-28, -72, -83, -27, -101, -67]
中国 GBK 0xd6 0xd0 0xb9 0xfa[-42, -48, -71, -6]
中国 ISO8859-1 0x3f,0x3f[63, 63]信息失去

(一)、浏览器
1、GET方式提交,浏览器会对URL进行URL encode,然后发送给服务器。
(1) 对于中文IE,如果在高级选项中选中总以UTF-8发送(默认方式),则PathInfo是URL Encode是按照UTF-8编码,QueryString是按照GBK编码。

http://localhost:8080/example/中国?name=中国

实际上提交是:
GET /example/%E4%B8%AD%E5%9B%BD?name=%D6%D0%B9%FA

(1) 对于中文IE,如果在高级选项中取消总以UTF-8发送,则PathInfo和QueryString是URL encode按照GBK编码。
实际上提交是:
GET /example/%D6%D0%B9%FA?name=%D6%D0%B9%FA

(3) 对于中文firefox,则pathInfo和queryString都是URL encode按照GBK编码。
实际上提交是:
GET /example/%D6%D0%B9%FA?name=%D6%D0%B9%FA

很显然,不同的浏览器以及同一浏览器的不同设置,会影响最终URL中PathInfo的编码。对于中文的IE和FIREFOX都是采用GBK编码QueryString。

小结:解决方案:
1、URL中如果含有中文等非ASCII字符,则浏览器会对它们进行URLEncode。为了避免浏览器采用了我们不希望的编码,所以最好不要在URL中直接使用非ASCII字符,而采用URL Encode编码过的字符串%.
比如:
URL:http://localhost:8080/example/中国?name=中国
建议:
URL:http://localhost:8080/example/%D6%D0%B9%FA?name=%D6%D0%B9%FA

2、我们建议URL中PathInfo和QueryString采用相同的编码,这样对服务器端处理的时候会更加简单。

2、还有一个问题,我发现很多程序员并不明白URL Encode是需要指定字符集的。不明白的人可以看看这篇文档:http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/net/URLEncoder.html

2、 POST提交
  对于POST方式,表单中的参数值对是通过request body发送给服务器,此时浏览器会根据网页的ContentType("text/html; charset=GBK")中指定的编码进行对表单中的数据进行编码,然后发给服务器。
在服务器端的程序中我们可以通过Request.setCharacterEncoding() 设置编码,然后通过request.getParameter获得正确的数据。

解决方案:
1、从最简单,所需代价最小来看,我们对URL以及网页中的编码使用统一的编码对我们来说是比较合适的。
如果不使用统一编码的话,我们就需要在程序中做一些编码转换的事情。这也是我们为什么看到有网络上大量的资料介绍如何对乱码进行处理,其中很多解决方案都只是一时的权宜之计,没有从根本上解决问题。

(二)、Servlet服务器
  Servlet服务器实现的Servlet遇到URL和POST提交的数据中含有%的字符串,它会按照指定的字符集解码。下面两个Servlet方法返回的结果都是经过解码的:
request.getParameter("name"); 
request.getPathInfo(); 

这里所说的"指定的字符集"是在应用服务器的配置文件中配置。

(1) tomcat服务器
对于tomcat服务器,该文件是server.xml
<Connector port="8080" protocol="HTTP/1.1" 
  maxThreads="150" connectionTimeout="20000" 
  redirectPort="8443" URIEncoding="GBK"/>
URIEncoding告诉服务器servlet解码URL时采用的编码。

<Connector port="8080" ... useBodyEncodingForURI="true" />
useBodyEncodingForURI告诉服务器解码URL时候需要采用request body指定的编码。

(2) weblogic服务器
对于weblogic服务器,该文件是weblogic.xml 
<input-charset>
  <java-charset-name>GBK</java-charset-name>
</input-charset>

(三)浏览器显示
  浏览器根据http头中的ContentType("text/html; charset=GBK"),指定的字符集来解码服务器发送过来的字节流。我们可以调用HttpServletResponse.setContentType()设置http头的ContentType。

总结:
1、URL中的PathInfo和QueryString字符串的编码和解码是由浏览器和应用服务器的配置决定的,我们的程序不能设置,不要期望用request.setCharacterEncoding()方法能设置URL中参数值解码时的字符集。
所以我们建议URL中不要使用中文等非ASCII字符,如果含有非ASCII字符的话要使用URLEncode编码一下,比如:

http://localhost:8080/example1/example/中国

正确的写法:

http://localhost:8080/example1/example/%E4%B8%AD%E5%9B%BD

并且我们建议URL中不要在PathInfo和QueryString同时使用非ASCII字符,比如

http://localhost:8080/example1/example/中国?name=中国

原因很简单:不同浏览器对URL中PathInfo和QueryString编码时采用的字符集不同,但应用服务器对URL通常会采用相同的字符集来解码。

2、我们建议URL中的URL Encode编码的字符集和网页的contentType的字符集采用相同的字符集,这样程序的实现就很简单,不用做复杂的编码转换。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yzhz/archive/2007/07/03/1676796.aspx

分类: 网站优化 标签:

FORM中"POST" 和 "GET" 的区别

2010年6月11日 岩岩魂   访问量: 1078 1 条评论

post与get的区别
最近一直看qq的协议,发现post和get真的是很重要。而且可以搞很高深的东西,但如果你不了解这两个东西的话,有的时候是很麻烦的。

表单提交中Get和Post方式的区别有5点

1. get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。

HTTP请求:GET与POST方法的区别

HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST仅用于更新站点。根据 HTTP 规范,GET 用于信息获取,而且应该是安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。幂等的意味着对同一 URL的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。 POST请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过 POST请求实现,因为在注解提交之后站点已经不同了(比方说文章下面出现一条注解);
在FORM提交的时候,如果不指定Method,则默认为GET请求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISOLatin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

在表单里使用”post”和”get”有什么区别

在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同:
1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的形式。
2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。

仔细研究下面的代码。你可以运行之来感受一下:

代码
<!--两个Form只有Method属性不同-->
<FORM ACTION=“getpost.asp” METHOD=“get”>
<INPUT TYPE=“text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Get”></INPUT>
</FORM>
<BR>
<FORM ACTION=“getpost.asp” METHOD=“post”>
<INPUT TYPE=“text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Post”></INPUT>
</FORM>

<BR>
<BR>

<% If Request.QueryString(“Text”) <> ““ Then %>
通过get方法传递来的字符串是: “<B><%= Request.QueryString(“Text”) %></B>“<BR>
<% End If %>

<% If Request.Form(“Text”) <> ““ Then %>
通过Post方法传递来的字符串是: “<B><%= Request.Form(“Text”) %></B>“<BR>
<% End If %>

说明
把上面的代码保存为getpost.asp,然后运行,首先测试post方法,这时候,浏览器的url并没有什么变化,返回的结果是:
通过Post方法传递来的字符串是: "Hello World"
然后测试用get方法提交,请注意,浏览器的url变成了:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果是:
通过get方法传递来的字符串是: "Hello World"
最后再通过post方法提交,浏览器的url还是:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果变成:
通过get方法传递来的字符串是: "Hello World"
通过Post方法传递来的字符串是: "Hello World"

提示
通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
1、 登陆页面可以被浏览器缓存;
2、 其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议
在Form中,建议使用post方法。
get与post的区别2
Get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。

Post:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的方法实现下列功能:
1:对现有资源的解释
2:向电子公告栏、新闻组、邮件列表或类似讨论组发信息。
3:提交数据块
4:通过附加操作来扩展数据库

从上面描述可以看出,Get是向服务器发索取数据的一种请求;而Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。
很理论化,但是很标准,method=“get”并不是从服务器上获取数据,get和post 只是发送机制不同,并不是一个取一个发!
get方法会在IE地址栏里显示表示你提交时候所带的值;post方法不会 

<form method="get" action="a.asp?b=b">跟<form method="get"action="a.asp">是一样的,也就是说,action页面后边带的参数列表会被忽视;而< formmethod="post" action="a.asp?b=b">跟<form method="post"action="a.asp">是不一样的。
另外,Get请求有如下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个问号?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。
Post请求有如下特性:数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
post 地址栏不会出现一大串?bjnghfgreygt这样的东西
如果是get,就会出现了
1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url后,如http://www.mdm.com/test.asp?name=asd&password=sad,数据都会直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML表头(header)内一起传送给服务器端交由 action属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理(2、3删除了)
4、 Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框

分类: 网站优化 标签:

IAB制订的网络广告尺寸标准

2010年5月24日 岩岩魂   访问量: 681 没有评论

Internet Advertising Bureau (IAB,国际广告局)的"标准和管理委员会"联合Coalition for Advertising Supported Informatiln and Entertainment(CASIE,广告支持信息和娱乐联合会)联合推出了一系列网络广告宣传物的标准尺寸。这些尺寸作为建议,提供给广告生产省和消费者,使大家都能接受。现在网站上的广告几乎都遵循IAC/CASIE标准。

网页设计标准
1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。
2、1024*768下,网页宽度保持在1002以内,如果满框显示的话,高度是612-615之间.就不会出现水平滚动条和垂直滚动条。
3、在ps里面做网页可以在800*600状态下显示全屏,页面的下方又不会出现滑动条,尺寸为740*560左右
4、在PS里做的图到了网上就不一样了,颜色等等方面,因为WEB上面只用到256WEB安全色,而PS中的RGB或者CMYK以及LAB或者HSB的色域很宽颜色范围很广,所以自然会有失色的现象.
页面标准按800*600分辨率制作,实际尺寸为778*434px
页面长度原则上不超过3屏,宽度不超过1屏
每个标准页面为A4幅面大小,即8.5X11英寸
全尺寸banner为468*60px,半尺寸banner为234*60px,小banner为88*31px
另外120*90,120*60也是小图标的标准尺寸
每个非首页静态页面含图片字节不超过60K,全尺寸banner不超过14K

1997年第一次标准公布

Num Size(pix) Name
1 468×60 全尺寸banner
2 392×72 全尺寸带导航条banner
3 234×60 半尺寸banner
4 125×125 方形按钮
5 120×90 按钮#1或小图标
6 120×60 按钮#2或小图标
7 88×31 小按钮或banner
8 120×240 垂直banner

2001年第二次标准公布

Num Size(pix) Name
1 120×600 "摩天大楼"形
2 160×600 宽"摩天大楼"形
3 180×150 长方形
4 300×250 中级长方形
5 336×280 大长方形
6 240×400 竖长方形
7 250×250 "正方形弹出式"广告

*IAB 将不再支持1997年第一次公布标准中的392×72形。

另外流行的一类
一、120*120,这种广告规格适用于产品或新闻照片展示。
二、120*60,这种广告规格主要用于做LOGO使用。
三、120*90,主要应用于产品演示或大型LOGO。
四、125*125,这种规格适于表现照片效果的图像广告。
五、234*60,这种规格适用于框架或左右形式主页的广告链接。
六、392*72,主要用于有较多图片展示的广告条,用于页眉或页脚。
七、468*60,应用最为广泛的广告条尺寸,用于页眉或页脚。
八、88*31,主要用于网页链接,或网站小型LOGO。

本文转载自 http://www.zhuanglei.com/article.asp?id=225

分类: 网站优化 标签:

.htaccess进阶附使用方法(转载加点评)

2010年4月18日 岩岩魂   访问量: 465 没有评论

点评:好多人都让.htaccess搞得头都大了就转过来,希望对大家有点帮助,虽说是进阶,可不要被题目吓倒了,好多的方法实现起来也很简单,只要有网站的FTP权限就好了,实质没有FTP权限也是可以实现,实现这样功能的WP插件也不少,只是专门的插件我还未发现,只怨我认识WP时间不长,代码好多还是一知半解,如果哪位有,就拿出来分享一下吧,独进步不如众进步,独乐乐不如众乐乐嘛

  这里让我们来比较全面的了解一下.htaccess吧。.htaccess是Apache服务器的一个非常强大的分布式配置文件。正确的理解和使用.htaccess文件,可以帮助我们优化自己的服务器或者虚拟主机。比如可以利用.htaccess文件创建自定义的“404 error”页面,更改很多服务器的配置。而我们所需要做的,仅仅是在这个文本文档中添加几条简单的指令而已。  Unix或Linux系统,或任何版本的Apache Web服务,都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。国外目前主流的虚拟主机提供商,几乎全部都支持自定义功能。
  启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用,如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:
AccessFileName .config  
点评:具体的操作要有服务器的.root权限,就是服务器的管理员权限,这不同于FTP权限,废话,大不相同
同时特别声明上面的部分提到的启用.htaccess需要root权限,请联系空间商或技术客服解决,下面的所有内容光涉及修改.htaccess来实现各种新颖的功能只需要您会上传会用记事本修改文件即可
笼统地来说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
创建一个.htaccess文档
  .htaccess是一个古怪的文件名(从Win的角度来说,它没有文件名,只有一个由8个字母组成的扩展名,不过实际上它是linux下的命名,而很多linux下的东西,我们向来都会认为很古怪的),在Win系统中是不可以直接通过“新建”文件来创建的,不过我们可以利用cmd中的copy来实现,比如copy sample.txt .htaccess。也可以先创建一个htaccess.txt,然后Ftp到服务器,通过FTP来修改文件名。
点评:这哥们说的就有点邪性了,大有把.htaccess说成是妖魔鬼怪的意味,其实不用劳烦cmd的那个命令,大家首先在文件夹选项中让它显示扩展名,然后把任意的方件用记事本另存为.htacces就可以了,不过的确直接创建是行不通的在win操作系统下
自定义错误页
点评实际好多插件就是通过这个原理实现所谓的自定义错误页面,哪几个忘记了,不好意思啊,知道的跟贴说明下
  .htaccess的一个应用是自定义错误页面,这将使你可以拥有自己的、个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错误页或没有任何页面。这会让你的网站在出错的时候看上去更专业。你还可以利用脚本程序在发生错误的时候通知你(例如当找不到页面的时候自动Email给你)。
你所知道的任何页面错误代码(像404找不到页面),都可以通过在.htaccess文件里加入下面的文字将其变成自定义页面:
ErrorDocument errornumber /file.html

点评:经典的使用方法,值得收藏
举例来说,如果我的根目录下有一个notfound.html文件,我想使用它作为404 error的页面:
ErrorDocument 404 /notfound.html
点评:经典的使用方法,值得收藏
如果文件不在网站的根目录下,你只需要把路径设置为:
ErrorDocument 500 /errorpages/500.html
以下是一些最常用的错误:

点评:特别说明一下,实际在FTP中直接上传好任意文件然后修改成.htaccess,是行得通的
.htaccess命令
禁止显示目录列表
有些时候,由于某种原因,你的目录里没有index文件,这意味着当有人在浏览器地址栏键入了该目录的路径,该目录下所有的文件都会显示出来,这会给你的网站留下安全隐患。
为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止 目录列表的显示:

401 - Authorization Required 需要验证
400 - Bad request 错误请求
403 - Forbidden 禁止
500 - Internal Server Error 内部服务器错误
404 - Wrong page 找不到页面

接下来,你要做的只是创建一个错误发生时显示的文件,然后把它们和.htaccess一起上传。

Options -Indexes

阻止/允许特定的IP地址
某些情况下,你可能只想允许某些特定IP的用户可以访问你的网站(例如:只允许使用特定ISP的用户进入某个目录),或者想封禁某些特定的IP地址(例如:将低级用户隔离于你的信息版面外)。当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法。
  使用以下命令封禁一个IP地址:
deny from 000.000.000.000
  这里的000.000.000.000是被封禁的IP地址,如果你只指明了其中的几个,则可以封禁整个网段的地址。如你输入210.10.56.,则将封禁210.10.56.0~210.10.56.255的所有IP地址。
  你可以使用以下命令允许一个IP地址访问网站:
allow from 000.000.000.000
  被允许的IP地址则为000.000.000.000,你可以象封禁IP地址一样允许整个网段。
  如果你想阻止所有人访问该目录,则可以使用:
  deny from all
点评:这并不影响,脚本在这个目录下的运行,是超好的防黑方法
替换index文件
  也许你不想一直使用index.htm或index.html作为目录的索引文件。举例来说,如果你的站点使用PHP文件,你可能会想使用 index.php来作为该目录的索引文档。当然也不必局限于“index”文档,如果你愿意,使用.htaccess你甚至能够设置 foofoo.balh来作为你的索引文档!
  这些互为替换的索引文件可以排成一个列表,服务器会从左至右进行寻找,检查哪个文档在真实的目录中存在。如果  一个也找不到,它将会把目录列表显示出来(除非你已经关闭了显示目录文件列表)。
DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm
重定向(rewrite)
点评:应用很广的一个应用,大家看仔细点哦
.htaccess 最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称,但仍然想让用户用旧地址访问到它时,变的极为有用。另一个应用(我发现的很有用的)是重定向到一个长URL,例如在我的时事通讯中,我可以使用一个很简短的URL来指向我的会员链接。以下是一个重定向文件的例子:
Redirect /location/from/root/file.ext http: //minidx.com/new/file/location.xyz
  访问在root目录下的名为oldfile.html可以键入:
/oldfile.html
  访问一个旧次级目录中的文件可以键入:
/old/oldfile.html
  也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录,并且你已经在一个新网站http: //minidx.com/newdirectory/上建立了与上相同的文档,你可以将旧目录下所有的文件做一次重定向而不必一一声明:
Redirect /olddirectory http: //minidx.com/newdirectory
这样,任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点,包括附加的额外URL信息。
  例如有人键入:
http: //minidx.com/olddirecotry/oldfiles/images/image.gif
请求将被重定向到:http: //minidx.com/newdirectory/oldfiles/images/image.gif
如果正确使用,此功能将极其强大。
密码保护
点评:连原作者都说了,最流行的做法

  尽管有各种各样的.htaccess用法,但至今最流行的也可能是最有用的做法是将其用于网站目录可靠的密码保护。尽管JavaScript等也能做到,但只有.htaccess具有完美的安全性(即访问者必须知晓密码才可以访问目录,并且绝无“后门”可走)。
利用.htaccess将一个目录加上密码保护分两个步骤。第一步是在你的.htaccess文档里加上适当的几行代码,再将.htaccess文档放进你要保护的目录下:
AuthName “Section Name”
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
Require valid-user
你可能需要根据你的网站情况修改一下上述内容中的一些部分,如用被保护部分的名字”Members Area”,替换掉“Section Name”。
/full/parth/to/.htpasswd则应该替换为指向.htpasswd文件(后面详述该文档)的完整服务器路径。如果你不知道你网站空间的完整路径,请询问一下你的系统管理员。

密码保护的.htpasswd文件
目录的密码保护比.htaccess的其他功能要麻烦些,因为你必须同时创建一个包含用户名和密码的文档,用于访问你的网站,相关信息(默认)位于一个名为.htpasswd的文档里。像.htaccess一样,.htpasswd也是一个没有文件名且具有8位扩展名的文档,可以放置在你网站里的任何地方(此时密码应加密),但建议你将其保存在网站Web根目录外,这样通过网络就无法访问到它了。
创建好.htpasswd文档后(可以通过文字编辑器创建),下一步是输入用于访问网站的用户名和密码,应为:
username:password
“password” 的位置应该是加密过的密码。你可以通过几种方法来得到加密过的密码:一是使用一个网上提供的permade脚本或自己写一个;另一个很不错的 username/password加密服务是通过KxS网站,这里允许你输入用户名及密码,然后生成正确格式的密码。对于多用户,你只需要在.htpasswd文档中新增同样格式的一行即可。另外还有一些免费的脚本程序可以方便地管理.htpasswd文档,可以自动新增/移除用户等。
当你试图访问被.htaccess密码保护的目录时,你的浏览器会弹出标准的username/password对话窗口。如果你不喜欢这种方式,有些脚本程序可以允许你在页面内嵌入username/password输入框来进行认证,你也可以在浏览器的URL框内以以下方式输入用户名和密码(未加密的):
http://username:password@www.website.com/directory/
点评:更多的关于htaccess的内容大家就到专业的在线帮助网站看看吧,这里就借花献佛了,毕竟让自己写这样的文章,还是省省吧,没那水种呀
附录:
Appache的doc
配置文件(configuration file)
http://lamp.linux.gov.cn/Apache/ApacheMenu/glossary.html#configurationfile
http://lamp.linux.gov.cn/Apache/ApacheMenu/configuring.html

要想更多地了解关于.htpasswd在WordPress中的应用请参阅:
http://codex.wordpress.org/Using_Permalinks 注意是英文的,顺便也回顾一下嘛,大学当时没好好学习

原作发表于:http://blog.minidx.com/2008/01/26/444.html 全文检索博客

分类: 网站优化 标签:

关于域名邮箱无法接收WP邮件解决办法

2010年4月17日 岩岩魂   访问量: 709 6 条评论

岩岩魂:很早就发现这个问题,但是由于当时不使用这个功能,也就没怎么研究,如今使用了WP博客,想使用评论邮件通知功能,于是满世界寻找解决方案,DA面板的没找到,倒是找到个CP面板的,转载过来,留着备用吧。

年前就跟阿士发现一个奇怪的问题,那就是当WP发出邮件后同域名的邮箱却无法收到信息,这不仅是WP的问题,大概使用Linux主机的都是这个问题吧。

Linux主机认为自己自己在给自己发信,所以并没有按照mx的设置路线发信,我曾经做过一个测试,当你的域名申请了QQ域名邮箱,那么即使是域名解析到G apps上,如果你用 @qq.com的邮箱发信依然会在QQ邮箱中收到,中间缺少了一个检查MX的环节。G apps也是一样,申请apps之后就会默认发到本地,也就不会跟着mx走了。

既然这样应该就是有解决办法了,因为空间使用的CP面板,大家都知道CP是很强大的,于是乎这个问题也可以解决。

额,我使用的是 衡天7号 主机,其他主机我不打包票。。。。

2 3

好了,自己去测试吧。DA暂时没研究,研究了补上来。

转自六维博客

分类: WordPress, 网站优化 标签:

.htaccess重写规则教程,绑定域名到子目录,防盗链

2010年4月13日 岩岩魂   访问量: 430 没有评论

这几天一直在研究Apache的重写规则,虽然网上有很多教程,不过发现大部分都是抄袭一个人的,一点都不全,所以我想写一个简单的易于理解的教 程,我学习.htaccess是从目录保护开始的,这个也比较简单,网上也有一些编辑器可以选择,这儿就不说了,教程从绑定域名到子目录开始,网上也有教 程,大部分都是抄袭一个人的,我在这儿解说一下,教程写法是这样的:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1
# 没有输入文件名的默认到到首页
RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$
RewriteRule ^(/)?$ blog/index.php [L]

下面我开始解说一下上面的意思:
【RewriteEngine On】表示重写引擎开,关闭off,作用就是方便的开启或关闭以下的语句,这样就不需要一条一条的注释语句了。

【RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$】
这是重写条件,前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分,格式是www.xxx.com不包括“http://”和“/”,^表 示字符串开始,$表示字符串结尾,\.表示转义的. ,如果不转义也行,推荐转义,防止有些服务器不支持,?表示前面括号www\.出现0次或1次,这句规则的意思就是如果访问的网址是xxx.com或者 www.xxx.com就执行以下的语句,不符合就跳过。

【RewriteCond %{REQUEST_URI} !^/blog/】
也是重写条件,%{REQUEST_URI}表示访问的相对地址,就是相对根目录的地址,就是域名/后面的成分,格式上包括最前面的“/”,!表示非,这句语句表示访问的地址不以/blog/开头,只是开头^,没有结尾$

【RewriteCond %{REQUEST_FILENAME} !-f】
【RewriteCond %{REQUEST_FILENAME} !-d】
这两句语句的意思是请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径

【RewriteRule ^(.*)$ /blog/$1】重写规则,最重要的部分,意思是当上面的RewriteCond条件都满足的时候,将会执行此重写规则,^(.*)$是一个正则表达的 匹配,匹配的是当前请求的URL,^(.*)$意思是匹配当前URL任意字符,.表示任意单个字符,*表示匹配0次或N次(N>0),后面 /blog/$1是重写成分,意思是将前面匹配的字符重写成/blog/$1,这个$1表示反向匹配,引用的是前面第一个圆括号的成分,即^(.*)$中 的.* ,其实这儿将会出现一个问题,后面讨论。

【RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$】
【RewriteRule ^(/)?$ blog/index.php [L]】
这两句的意思是指请求的host地址是www.xxx.com是,如果地址的结尾只有0个或者1个“/”时,将会重写到子目录下的主页,我猜想这主要因为重写后的地址是不能自动寻找主页的,需要自己指定。

现在说说出现的问题,RewriteRule ^(.*)$ /blog/$1前部分^(.*)$将会匹配当前请求的url,例如:请求网址是http://www.xxx.com/a.html,到底是匹配整个 http://www.xxx.com/a.html,还是只匹配/a.html即反斜杠后面的成分,还是只匹配a.html。
答案是:根据RewriteBase规则规定,如果rewritebase 为/,将会匹配a.html,不带前面的反斜杠,所以上条语句应该写成RewriteRule ^(.*)$ blog/$1(不带/),不过实际应用上带上前面的反斜杠,也可以用,可能带不带都行。现在问题出来了,如果不设置rewritebase 为/ ,将会匹配整个网址http://www.xxx.com/a.html,显然这是错误的,所以应该添加这条:
RewiteBase /

还有一个问题是,不能保证每个人输入的网址都是小写的,如果输入大写的呢,linux系统是区分大小写的,所以应该在RewriteCond后添加[NC]忽略大小写的。
至此,完整的语句应该是:

####start####
RewriteEngine On
RewiteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ blog/$1
# 没有输入文件名的默认到到首页
RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ [NC]
RewriteRule ^(/)?$ blog/index.php [L]
####end####

如果后面还继续有语句的,就不应该加上最后的[L],因为这是表示最后一条语句的意思

防盗链的语句,同样需要添加RewiteBase /,如下:

RewriteEngine on
RewiteBase /
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !xxx.info [NC]
RewriteRule \.(jpg|gif|png|bmp|swf|jpeg)$ /error/daolian.gif [R,NC,L]

如果后面还继续有语句的,就不应该加上最后的[L],/error/daolian.gif为别人盗链时显示的图片。

下面附上简单的语法规则和flags:
【RewriteCond语法:】
RewriteCond TestString CondPattern [flags]
rewritecond的其他用法:
‘-d’(目录)
将TestString视为一个路径名并测试它是否为一个存在的目录。
‘-f’(常规文件)
将TestString视为一个路径名并测试它是否为一个存在的常规文件。
‘-s’(非空的常规文件)
将TestString视为一个路径名并测试它是否为一个存在的、尺寸大于0的常规文件。
‘-l’(符号连接)
将TestString视为一个路径名并测试它是否为一个存在的符号连接。
‘-x’(可执行)
将TestString视为一个路径名并测试它是否为一个存在的、具有可执行权限的文件。该权限由操作系统检测。
‘-F’(对子请求存在的文件)
检查TestString是否为一个有效的文件,而且可以在服务器当前的访问控制配置下被访问。它使用一个内部子请求来做检查,由于会降低服务器的性能,所以请谨慎使用!
‘-U’(对子请求存在的URL)
检查TestString是否为一个有效的URL,而且可以在服务器当前的访问控制配置下被访问。它使用一个内部子请求来做检查,由于会降低服务器的性能,所以请谨慎使用!

【RewriteRule语法:】
RewriteRule Pattern Substitution [flags]

【flags】:

‘chain|C’(链接下一规则)
此标记使当前规则与下一个规则相链接。它产生这样的效果:如果一个规则被匹配,则继续处理其后继规则,也就是这个标记不起作用;如果该规则不被匹配,则其 后继规则将被跳过。比如,在一个目录级规则中执行一个外部重定向时,你可能需要删除”.www”(此处不应该出现”.www”)。

‘cookie|CO=NAME:VAL:domain[:lifetime[:path]]’(设置cookie)
在客户端设置一个cookie。cookie的名称是NAME,值是VAL。domain是该cookie的域,比如’.apache.org’,可选的lifetime是cookie的有效期(分钟),可选的path是cookie的路径。

‘env|E=VAR:VAL’(设置环境变量)
此标记将环境变量VAR的值为VAL,VAL可以包含可扩展的正则表达式反向引用($N和%N)。此标记可以多次使用以设置多个变量。这些变量可以在其后 许多情况下被间接引用,通常是在XSSI(<!–#echo var=”VAR”–>)或CGI($ENV{‘VAR’})中,也可以在后继的RewriteCond指令的CondPattern参数中通过% {ENV:VAR}引用。使用它可以记住从URL中剥离的信息。

‘forbidden|F’(强制禁止URL)
强制禁止当前URL,也就是立即反馈一个HTTP响应码403(被禁止的)。使用这个标记,可以链接若干个RewriteConds来有条件地阻塞某些URL。

‘gone|G’(强制废弃URL)
强制当前URL为已废弃,也就是立即反馈一个HTTP响应码410(已废弃的)。使用这个标记,可以标明页面已经被废弃而不存在了。

‘handler|H=Content-handler’(强制指定内容处理器)
强自制定目标文件的内容处理器为Content-handler。例如,用来模拟mod_alias模块的ScriptAlias指令,以强制映射文件夹内的所有文件都由”cgi-script”处理器处理。

‘last|L’(结尾规则)
立即停止重写操作,并不再应用其他重写规则。它对应于Perl中的last命令或C语言中的break命令。这个标记用于阻止当前已被重写的URL被后继规则再次重写。例如,使用它可以重写根路径的URL(‘/’)为实际存在的URL(比如:’/e/www/’)。

‘next|N’(从头再来)
重新执行重写操作(从第一个规则重新开始)。此时再次进行处理的URL已经不是原始的URL了,而是经最后一个重写规则处理过的URL。它对应于Perl 中的next命令或C语言中的continue命令。此标记可以重新开始重写操作(立即回到循环的开头)。但是要小心,不要制造死循环!

‘nocase|NC’(忽略大小写)
它使Pattern忽略大小写,也就是在Pattern与当前URL匹配时,’A-Z’和’a-z’没有区别。

‘noescape|NE’(在输出中不对URI进行转义)
此标记阻止mod_rewrite对重写结果应用常规的URI转义规则。 一般情况下,特殊字符(‘%’, ‘$’, ‘;’等)会被转义为等值的十六进制编码(‘%25′, ‘%24′, ‘%3B’等)。此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,比如:
RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
可以使’/foo/zed转向到一个安全的请求’/bar?arg=P1=zed’。

‘nosubreq|NS’(不对内部子请求进行处理)
在当前请求是一个内部子请求时,此标记强制重写引擎跳过该重写规则。比如,在mod_include试图搜索目录默认文件(index.xxx) 时,Apache会在内部产生子请求。对于子请求,重写规则不一定有用,而且如果整个规则集都起作用,它甚至可能会引发错误。所以,可以用这个标记来排除 某些规则。
使用原则:如果你为URL添加了CGI脚本前缀,以强制它们由CGI脚本处理,但对子请求处理的出错率(或者资源开销)很高,在这种情况下,可以使用这个标记。

‘proxy|P’(强制为代理)
此标记使替换成分被内部地强制作为代理请求发送,并立即中断重写处理,然后把处理移交给mod_proxy模块。你必须确保此替换串是一个能够被 mod_proxy处理的有效URI(比如以http://hostname开头),否则将得到一个代理模块返回的错误。使用这个标记,可以把某些远程成 分映射到本地服务器域名空间,从而增强了ProxyPass指令的功能。
注意:要使用这个功能,必须已经启用了mod_proxy模块。

‘passthrough|PT’(移交给下一个处理器)
此标记强制重写引擎将内部request_rec结构中的uri字段设置为filename字段的值,这个小小的修改使得RewriteRule指令的输 出能够被(从URI转换到文件名的)Alias, ScriptAlias, Redirect等指令进行后续处理[原文:This flag is just a hack to enable post-processing of the output of RewriteRule directives, using Alias, ScriptAlias, Redirect, and other directives from various URI-to-filename translators.]。举一个能说明其含义的例子: 如果要将/abc重写为/def, 然后再使用mod_alias将/def转换为/ghi,可以这样:
RewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghi
如果省略了PT标记,虽然将uri=/abc/…重写为filename=/def/…的部分运作正常,但是后续的mod_alias在试图将URI转换到文件名时会遭遇失效。
注意:如果需要混合使用多个将URI转换到文件名的模块时,就必须使用这个标记。。此处混合使用mod_alias和mod_rewrite就是个典型的例子。

‘qsappend|QSA’(追加查询字符串)
此标记强制重写引擎在已有的替换字符串中追加一个查询字符串,而不是简单的替换。如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。

‘redirect|R [=code]‘(强制重定向)
若Substitution以http://thishost[:thisport]/(使新的URL成为一个URI)开头,可以强制性执行一个外部重定 向。如果没有指定code,则产生一个HTTP响应码302(临时性移动)。如果需要使用在300-400范围内的其他响应代码,只需在此指定即可(或使 用下列符号名称之一:temp(默认), permanent, seeother)。使用它可以把规范化的URL反馈给客户端,如将”/~”重写为”/u/”,或始终对/u/user加上斜杠,等等。
注意:在使用这个标记时,必须确保该替换字段是一个有效的URL。否则,它会指向一个无效的位置!并且要记住,此标记本身只是对URL加上 http://thishost[:thisport]/前缀,重写操作仍然会继续进行。通常,你还会希望停止重写操作而立即重定向,那么就还需要使 用’L'标记。

’skip|S=num’(跳过后继规则)
此标记强制重写引擎跳过当前匹配规则之后的num个规则。它可以模拟if-then-else结构:最后一个规则是then从句,而被跳过的skip=N个规则是else从句。注意:它和’chain|C’标记是不同的!

‘type|T=MIME-type’(强制MIME类型)
强制目标文件的MIME类型为MIME-type,可以用来基于某些特定条件强制设置内容类型。比如,下面的指令可以让.php文件在以.phps扩展名 调用的情况下由mod_php按照PHP源代码的MIME类型(application/x-httpd-php-source)显示:
RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source]

Apache服务器变量:
参见http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html

转载自:http://www.cellonline.info/179/

分类: 网站优化 标签:

利用bing查询同一服务器IP下的所有网站

2010年4月6日 岩岩魂   访问量: 439 没有评论

  如何利用bing必应搜索引擎查询同一服务器IP下驻扎的所有网站。

  早晨在搜索引擎周边看到了这篇帖子,发现bing必应搜索引擎原来也是一个不错的SEO工具,觉得很有价值,于是将这个技术应用方式也分享给本博客的读者。

  当我们为网站选购虚拟主机时,关心的问题无非是这台服务器下究竟有多少网站、是否有一些网站被严重惩罚,以及这台服务器的速度如何?前面也有过几款国外的实用网站可以提供此方面的查询,但是多数是收费的、或者是网站打开查询速度超慢。今天bing必应搜索引擎为我们提供的此项查询功能不仅简单实用、而且速度也超过、同时也是免费的。

  下面是利用bing必应搜索引擎查询网站同一服务器下所有网站的方法:

  1. 首先我们需要得到博客的IP地址,可以在这里查询“http://who.is/tools/ping/”,最终查询本博客所使用的服务器IP地为 74.82.163.83。
  2. 剩下的步骤就是在bing必应搜索引擎中输入查询指令:IP:74.82.163.83,需要注意的就是冒号要小写。经过搜索你网站所有的“邻居”就全部可以浮现在眼前了。

  

分类: 网站优化 标签:

百度和谷歌的更新日期和时间规律

2010年1月26日 岩岩魂   访问量: 414 没有评论

作为一名网站站长,来自搜索引擎的流量已经是网站流量的一个重要组成部分,因此对搜索引擎更新特别关注,总是希望自己的网站在百度收录越来越多,天天site,现在我来告诉你百度的大致更新时间,省去你天天site的麻烦,多点时间去提高下网站质量,呵呵。

  据统计:度收录的大更新时间是每月11号和26号,特别是26号,更新幅度最大,K站也是最多的。

  小更新时间:每周四。更新时刻都在凌晨4点。一般凌晨4点更新,也有在早上九点以后更新的。对网站流量都没啥影响,只有到中午的时候,百度对网站的关键字搜索进行重新调整之后,才会有流量上的大的变化。自然流量有增自然有降,自然现象嘛。呵呵,个人站长可以注意下百度。更新时间! 根据最新观察分析百度更新时间大致为:一个月2次!

  google更新时间:

  预测:收录时间:更新后第1天;更新时间 :每七天更新一次(排名影响小) ;大更新时间:每月更新一次(排名影响大) ,PR数值更新3个月更新完一次(9月20日更新过以此类推),因为存在不同服务器更新总时间为一星期。GOOGLE有两种爬虫一种是收录爬虫,此爬虫是专门收录网站用的,还有一种是增加排名的爬虫,此爬虫是综合计算反响连接用的爬虫,并且对排名的稳定和位置很重要。所以有的新站,在刚收录的时候排名不是很好就是很差,这是因为第一个爬虫的原因,但是网站掉了不要着急,真正排站要在三个月后第二个爬虫来的时候来会生效。还有就是GOOGLE谷歌研究者们发现了一个很简单的办法,就是查看GOOGLE的几个镜像站点是否相同,因为在GOOGLE更新期间,他总是将 www2.google.com或者www3.google.com作为更新测试站点,在这期间,后两个站点中索引的页面数量和主站点将会不同。比如当我们www.google.com www2.google.com  www3.google.com 还有就是一种情况:三个网站搜索同一个关键词,得到的结果的数量不相同,这就说明GOOGLE正在更新。 GOOGLE这种大规模的更新在国外被称为GOOGLE DANCE(狗狗跳舞),有一个专门协助我们检查他是否正在跳舞的网站 http://www.google-dance-tool.com这个网站提供一个工具,通过这个工具,我们只需要输入一个关键词然后点击一个按钮,就可以看到GOOGLE三个镜像站点的搜索结果,很方便我们对比。

  PR数值更新3个月更新完一次。

  雅虎更新:雅虎的每天更新时间是早上6:00-7:00,一般搜索你网站的网址发现收录比前一天减少之后,在过30分钟就会发现收录增多了。大概一到两个月左右更新一次,动静比较大。雅虎收录:一般时间是1个月左右,但是如果你的站架构好,代码符合w3c并且内容原创的话10天内肯定就会被收录,同google。

  下面向大家介绍一下新站在怎样适当时候登陆容易被收录。

  1 百度新站登陆技巧

  一般网上都说去比较大型的论坛和百度帖吧发帖时带上新站的链接,网站很快被收录,但是我没有这么做,我有一个站是在头天下午5点多时手工提交的,第2天一site: www.weiwe.cn 就发现被百度收录了,凑巧的是我以前的一个站也是在这个时间段提交的,并且收录的时间也很快。

  2 百度文章收录技巧
  看到很多朋友都因网站文章不被收录而苦脑,但是我却不为这个发愁,因为我当天发布的文章很快就能被百度收录,在这里告诉大家一个技巧,我不知道是不是百度在早上8:00-9:00这个时间段更新自己的数据库,但是我每天早上去公司在这个时间段所更新的文章都能被百度很快收录。

  3 Google新站登陆技巧

  技巧谈不上,因为我没有怎么关心过Google,因为它真的没有给我带来什么IP流量,可能时因为我的PR值低的原因吧,把我的文章全部都放在“补充材料”里去了,所以没有什么流量,但是我同样的时间段提交给Google收录的时间要比百度晚两天,可能是呀在美国的原因吧。

  4 Google文章收录技巧
  Google的更新时间一般在下午的2:00-3:00之间,因为具我观察在这个时间段所发布的文章也能被Google很快的收录,并且Google很爽快,它要不收你就不收你,一旦收录就是上百上千的收录。并且google adsense也是在3:00-4:00这个时间进行更新,主要是因为美国佬们这时该起床上班了。

(责任编辑:admin)

SEO菜鸟需要掌握哪些基本SEO技巧?

2010年1月26日 岩岩魂   访问量: 424 1 条评论
SEO菜鸟需要掌握的基本SEO技巧如下:
 
导航
请确保你的网站导航都是以html的形式链接。所有页面之间应该有广泛的互联,如果无法实现这一点,可以考虑建立一个网站地图

首页
网站的首页(home或index页等)应该采用文本的形式,而不是flash等。这个文本里面要包含你的目标关键字或目标短语。

标签
<title> < /title>这是标题标签,这里面应当包含你最重要的目标关键词。

Meta Tags
'description tag'(描述标签) 和 'keyword tag' (关键词标签)应包含你的目标关键字或目标短语,但不要重复。

Alt Tags
网站上重要的图片,如:logo,照片,导航图片等,要加上简单的描述。

关键词文本
在你的站点中,应该有一些包含着很高关键字密度的页面。但这个办法不要使用过头,否则会被搜索引擎当作是作弊而适得其反。

向搜索引擎提交
请不要使用软件或自动提交服务。其实,没有必要向成千上百的搜索引擎提交你的网址。五大主要搜索引擎和目录占着90%的搜索流量。手动的向那几个熟悉的搜索引擎提交你的网址就够了,那花不了你几分钟时间。
友情链接
和同行网站进行友情链接,内容相关、PR值比自己高的站点最好。千万不要加入链接养殖场 (Link Form),那样会让你被搜索引擎封掉。

以上的建议,非常简短的,但对于SEO菜鸟非常管用。如果你想更多的学习SEO,并让自己的站点成为互联网上的明星,那么你应该把SEO十万个为什么订阅下来。

作者:夫唯@SEO培训  SEO修订1.2  2009-12-11

分类: 网站优化 标签: , ,