多域名301跳转到主域名Rewrite设置和域名301跳转的实现方法

米粒在线分享下关于:多域名301跳转到主域名Rewrite设置和域名301跳转的实现方法


如果网站有多个域名,而又不希望分散权重,则可以通过开启Rewrite设置,将多个域名都301跳转到主域名之下,具体代码如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^miliol.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.mililo.com [NC,OR]
RewriteCond %{HTTP_HOST} ^miliol.org [NC]
RewriteRule ^(.*)$ https://www.miliol.org/$1 [L,R=301]

其中www.miliol.org为最终希望出现的域名,而miliol.com、www.miliol.com和miliol.org都为希望被301跳转的域名。(子域名在计算权重的时候也被认为是独立的新域名,所以此方法也可用于不带www的域名和带www的域名之间的跳转)其中OR的含义为“或”,可以通过OR继续添加更多的域名。

配置代码可写在httpd.conf中,也可以写在.htaccess文件中,如果是wordpress用户,在修改.htaccess文件时候,记得将配置代码写在# BEGIN WordPress和# END WordPress之外,否则会被wordpress设置时给覆盖。


域名301跳转的实现方法

所谓301永久重定向(或叫301转向,301跳转),是指当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

301永久重定向有何作用?在哪些情况下适用?
从301永久重定向的定义可以看出,它是一种状态码,会向搜索引擎或浏览器发出信息:本网页的地址已经永久改变了。并会把新的地址传达过去。而相应的就是:我们输入网址A访问,显示出来的是转向后的网址B,转向过程极短以至无法察觉。所以,301永久重定向对于访客来说,作用就是将他要访问的而实际上已不存在的网址转到另一个网址,避免出现“此网页无法显示”之类的错误;对于搜索引擎优化|SEO来说,给搜索引擎一个友好的信息,告诉它此页面已永久重定向,避免搜索引擎找不到页面。这对于网站的SEO是很重要的,因为301永久重定向对SEO无任何不好的影响!而且网页A的关键词排名和PR级别都会传达给网页B!
一、当出于需要删除网站中的某些目录时,可以通过301永久重定向将此目录重定向到网站首页。
二、网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO。
三、想要多个域名同时指向同一网站时,通过301永久重定向可以实现。一般的虚拟主机后台提供将miliol.com和www.miliol.com等多个域名绑定到同一网站的功能,但这样对收录可能有影响,而用301永久重定向就没有这样的担忧。
四、实现网址规范化。

经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:

http://www.miliol.com

http://miliol.com

http://www.miliol.com/index.html

http://miliol.com/index.html

而这样导致:你站点主域名的PR值分散到其他几个URLs了。

如果你用301重定向把其他三个URL转到www.miliol.com
PR也就集中在主域名:www.miliol.com 了。

如何实现301永久重定向?

实现的方法主要描述两种,一种是通过容器的配置修改实现,另外一种是程序语言实现

一、容器的配置修改方法:

1)IIS容器实现301转向:

1.internet信息服务管理器中,在想要重定向的网页或目录上点击鼠标右键
2.选择-重定向到URL
3.输入目标页面的地址
4.选中-资源的永久重定向
5.应用并确定

2)Apache容器下修改方法:

1、修改.htaccess文件,输入下列内容(需要开启mod_rewrite):

①将不带WWW的域名转向到带WWW的域名下:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^miliol.org [NC]
RewriteRule ^(.*)$ https://www.miliol.org/$1 [L,R=301]

②重定向到新域名:

RewriteEngine on
RewriteRule ^(.*)$ https://www.miliol.org/$1 [L,R=301]

2、Apache下vhosts.conf中配置301转向:

View Code APACHE

1
2
3
4
5
6
7
<VirtualHost *:80>
ServerName www.miliol.org
DocumentRoot /home/
</VirtualHost><VirtualHost *:80>
ServerName miliol.org
RedirectMatch permanent ^/(.*) https://www.miliol.org/$1
</VirtualHost>

3)Ruby容器中实现301转向:

1
2
3
4
def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "https://www.miliol.org"
end

4)Coldfusion容器中实现301转向:

1
2
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="https://www.miliol.org">

二、程序语言跳转方法:
1、ASP的301跳转代码:

1
2
3
4
5
<%@ Language="VBScript" %>
<%
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "https://www.miliol.org"
%>

2、PHP的301跳转代码:

1
2
3
4
5
<?
header("HTTP/1.1 301 Moved Permanently");
header("Location:https://www.miliol.org");
exit();
?>

3、ASP.Net的301跳转代码:

View Code ASP

1
2
3
4
5
6
7
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","https://www.miliol.org");
}
</script>

4、CGI Perl的301跳转代码:

1
2
$q = new CGI;
print $q->redirect("https://www.miliol.org
");

5、JSP的301跳转代码:

1
2
3
4
5
<%
response.setStatus(301);
response.setHeader( "Location", "https://www.miliol.org
" );
response.setHeader( "Connection", "close" );
%>
欢迎来米粒在线学习,转载请注明出处:https://www.miliol.org/592.html 还有下面的评论也精彩!
米粒在线
  • 本文由 发表于 2012年10月4日21:20:37
  • 转载请务必保留本文链接:https://www.miliol.org/592.html
网站建设

从并发20到并发120之laravel性能优化

调优成果 遇到问题 单台服务并发20,平均响应时间1124ms,通过htop观察,发现cpu占用率达到100%(包括sleep的进程),内存几乎没怎么用。 调优后 单机最大吞吐量达到1...
网站建设

为了WordPress运行效率翻倍我用Cyberpanel替代了宝塔面板

因为我的博客最近这段时间总是莫名其妙的卡成狗,用的是应该是某个插件的原因,正好许久没折腾了就追求刺激,准备重新使用我以前心心恋恋的 openlitespeed,当初测试在都安装插件的情况下 NGINX...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:1   其中:访客  1   博主  0
    • 米粒在线 米粒在线 4

      在Linux主机下的,多域名301跳转设置,常规的写法,大家应该都会的:
      RewriteEngine On

      RewriteCond %{HTTP_HOST} ^qiuyongsheng.com [NC]
      RewriteRule ^(.*)$ http://www.qiuyongsheng.com/$1 [L,R=301]
      但是要用的是多个域名301跳转,主机绑定了好几个域名,寻找的是这些域名同时都陆续跳转之的方法,写法:
      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^b.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^www.b.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^c.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^www.c.com [NC,OR]
      RewriteCond %{HTTP_HOST} ^miliol.com [NC]
      RewriteRule ^(.*)$ http://www.miliol.com/$1 [L,R=301]

      就是多个域名,可以在NC后面加个OR设置,直到最后一个,中括号中相关字母代表的意思是:

      1) R[=code](force redirect) 表示强制外部重定向,
      强制在替代字符串加上http://thishost[:thisport]/前缀
      重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
      2) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
      3) NC(no case) 不区分大小写

      采用重写语句RewriteRule ^(.*)$ http://www.miliol.com/$1 [L,R=301]后,
      某个url例如miliol.com/news/1.html会被跳转成www.miliol.com//news/1.html,
      多了一个斜杠,故经过优化后,采用重写语句
      RewriteRule ^(.*)$ http://www.miliol.com$1 [L,R=301]
      比较好,就不会多出那个斜杠来了。