日期:2014-05-16  浏览次数:20676 次

wordpress在LINUX主机和windows主机下如何设定301重定向
昨天一直在设置博客的重定向功能。由于服务器是cPanel控制面板,所以直接在上面设置了一下但是就是不成功不知道为什么。于是去查资料。弄老半天才弄好。(不知道什么是重定向的朋友可以去参考301重定向疑问大搜集)

wordpress在Linux下如何设定301重定向

我是Linux主机,所以直接在.htaccess文件加了一段代码。我的代码是这样设置的:

RewriteEngine on
RewriteCond %{http_host} ^www.heatpress123.net [NC]
RewriteRule ^(.*)$ http://heatpress123.net/$1 [L,R=301]
301重定向设置好这后,就要检测一下301是否生效。分享两个实用的301重定向检测工具:

国内版:http://www.ranknow.cn/tools/redirectcheck
国外版:http://www.seoconsultants.com/tools/headers#Results

从检测结果看,第一步访问www域名后返回301状态和转向后的不带www域名起址,第二步浏览器收到301重定向后发起第二次新域名请求,返回200正常状态。我已经设置成功了。

wordpress在Windows主机怎样实现301重定向

我这里讲得Windows实现301跳转是直接修改wordpress函数就可以实现301重定向,打开根目录下得wp-blog-header.php,在<?php后面添加如下代码:

if (strtolower($_SERVER['SERVER_NAME'])!='***.com')
{
$URIRedirect=$_SERVER['REQUEST_URI'];
if(strtolower($URIRedirect)=="/index.php")
{
$URIRedirect="/";
}
header('HTTP/1.1 301 Moved Permanently');
header('Location:http://***.com'.$URIRedirect);
exit();
}
附上常见HTTP 状态码说明:

200
请求已成功,请求所希望的响应头或数据体将随此响应返回。
301
被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。如果可能,拥有连结编辑功能的客户端应当自动把请求的地址修改为从伺服器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。
新的永久性的URI应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超连结及简短说明。
如果这不是一个GET或者HEAD请求,因此浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。注意:对于某些使用HTTP/1.0协议的浏览器,当它们发送的POST请求得到了一个301响应的话,接下来的重定向请求将会变成GET方式。
302
请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。新的临时性的URI应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超连结及简短说明。
401
当前请求需要用户验证。该响应必须包含一个适用于被请求资源的WWW-Authenticate信息头用以询问用户信息。客户端可以重复提交一个包含恰当的Authorization头信息的请求。如果当前请求已经包含了Authorization证书,那么401响应代表着伺服器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。
403
伺服器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个HEAD请求,而且伺服器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然伺服器也可以返回一个404响应,假如它不希望让客户端获得任何信息。
404
请求失败,请求所希望得到的资源未被在伺服器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如伺服器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。 404这个状态码被广泛应用于当伺服器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。
413
伺服器拒绝处理当前请求,因为该请求提交的实体数据大小超过了伺服器愿意或者能够处理的范围。此种情况下,伺服器可以关闭连接以免客户端继续发送此请求。
500
伺服器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。
原文:http://www.software8.co/cms/wordpress/1581.html