301跳转与URL转发[通俗易懂]

301跳转与URL转发[通俗易懂]301跳转与URL转发

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在购买域名时,域名本身是不带有www的,但由于域名要通过DNS服务器解析后才可以使用,在这个过程中每一个域名是会指向一个web服务器ip地址,由于在很早之前网站方都会增加一个”www”的子域名来帮助客户以更多的路径访问网站,客户通常都会按照:”www.++.com”的形式来访问站点;如果你没有做这个www的解析那么”www.++.com”就不能访问,对于不懂技术或者不明白解析的客户来讲,这个问题可能会造成他不能访问你的站,因为他只是知道用带有”www”的形式访问你的站点,可能不知道”++.com”也是同样可以访问的!所以,后来也就有了更多人在延续这个做法;我们在购买空间域名时,服务商也会随手就帮你做了这个”www”的解析,当然,这个解析的服务器地址是和没有”www”相同的,造成:你用带”www”的和不带两个域名同时可以访问一个同样的内容。说白了这个问题的答案就是:能够让初次使用互联网的人更快的访问进你的网站。

但是这样的话,会分散某个域名的流量与PR值,最好是将所有访问定向到某个域名下。

可以通过使用服务器技术实现的url转发功能(url-forwarding 或 url redirect),转发到带www的域名来访问。但是我们说到用这种url转发方式是对seo不利的,对搜索引擎最友好的跳转方式是使用301转向(也叫301跳转,301重定向)。

所以这里就有一些疑问了,为什么godaddy等域名注册商提供的url转发功能是不利于seo的?url转发的原理是什么?如果要用301转向,那么Linux apache, Windows IIS, php, ASP, ASP.NET, JSP 分别该如何设置来实现301重定向?

  • 301重定向的作用

为什么要使用301转向?首先第一条就是刚才我们提到的为了seo优化,在如何url网址规范化中也提到,设置301转向后,原来的页面将返回301 HTTP 状态码给浏览器或者搜索引擎,告知搜索引擎次页面已经永久重定向到了新的网页上,spider就不会索引原网页,同时也会将原网页的PR权重传递给跳转到的新网页。如果返回的是302状态码,则告诉spider页面跳转只是临时的,spider仍然会索引原网页,这就造成了重复页面问题(即Google 补充材料)。如www.yybb120.com 302 跳转到 yybb120.com,它们就会被当做两个重复页面。

其次,由于各种原因要更换域名时,可以使用301重定向将老域名301转向到新的域名,这样老域名的流量不会流失,PR权重也会转移。另外当有注册了多个不同域名,指向到同一网站时,也可以只设置一个主域名,将其他域名设置301转向到主域名,这样各个域名就不会分散权重。因此使用301转向很有必要。

  • URL转发的原理

url转发有两种方式,隐藏转发和(url转发后浏览器地址栏输入的网址不变)不隐藏转发(也叫显性转发:url转发后地址栏显示的地址为转发后的网址)。有人测试过,不管是隐藏转发还是不隐藏转发,根据不同的域名注册服务商,可能会返回不同的http header。有的域名服务商管理后台设置的url转发功能(URL Forwarding)会使服务器返回302状态码给搜索引擎,而不是301 http 状态码。

据说这类url转发有的是通过给浏览器窗口套用一个框架iframe的方式来实现隐藏转发,有的则是使用Javascript或Meta Refresh来实现不隐藏方式的url转发,很少是真正用了301 重定向方法的。所以大家还是尽量少用url转发功能,而是自己去手工设置实现301转向。

  • 如何实现301重定向

前面我们已经提到了很多关于WordPress等404页面的设置方法。设置301重定向(301转向,跳转)的实现方法也有很多,下面根据不同的空间服务器类型和程序语言列出各种301重定向实现代码,要参考的童靴请对号入座:

  • Linux 主机 Apache服务器 Mod-Rewrite 模式:通过.htaccess文件

当浏览器或搜索引擎spider发送一个页面请求时,Web服务器就会检查一个名为’.htaccess’的文件,这个文件指明了如何处理页面请求,通过修改设置’.htaccess’文件就可以告知搜索引擎某个页面是302转向(临时跳转)还是301重定向(永久性跳转)。有的Linux主机服务器还支持你在管理后台直接设置301转向。如果不能在后台设置,实现301重定向步骤也很简单:新建一个文件名为.htaccess.txt的文档(注意前面的点号不能遗漏),在txt文档中写入以下301转向代码:

1    Options +FollowSymLinks    

2    RewriteEngine on    

3    rewritecond %{http_host} ^yybb120.com [nc]    

4    rewriterule ^(.*)$ http://www.yybb120.com/$1 [r=301,nc]    

或者

1    RewriteEngine On    

2    RewriteCond %{HTTP_HOST} !^yybb120.com$ [NC]    

3    RewriteRule ^(.*)$ http://www.yybb120.com/$1 [L,R=301]    

保存文件,将文件名称末尾的.txt去掉,上传到网站根目录即可。上面的代码表示整站所有的以带www的域名www.yybb120.com为地址的网页都会301转向到不带www的域名yybb120.com(不仅是首页,子目录/网页也可以)。如果是其他域名要重定向到 yybb120.com 这个新域名,则在.htaccess文件中加入如下重定向代码:

1    Options +FollowSymLinks    

2    RewriteEngine on    

3    RewriteRule ^(.*)$ http://www.yybb120.com/$1 [L,R=301]    

  • Windows主机IIS下的301转向设置

在IIS 管理后台 -> 选择你要重定向的文件或文件夹 -> 右键”重定向到URL” -> 输入需要转向的目标URL ->选择”资源的永久重定向”。

另外,如果你的Windows虚拟主机空间支持ISAPI_Rewrite,那么在IIS下利用ISAPI_Rewrite不仅可以实现url 重写,还可以用来设置301转向,下面分别是三个版本的ISAPI_Rewrite对应的带www的域名301转向到不带www域名的代码:

01    # ISAPI_Rewrite 1.3 版本 域名的301重定向    

02    RewriteCond Host: ^www\.yybb120\.com$    

03    RewriteRule (.*) http\://yybb120\.com$1 [I,R]    

04    

05    # ISAPI_Rewrite 2.x 版本    

06    RewriteCond Host: ^www\.yybb120\.com$    

07    RewriteRule (.*) http\://yybb120\.com$1 [I,RP]    

08    

09    # ISAPI_Rewrite 3.x 版本    

10    RewriteCond %{HTTP:Host} ^www\.yybb120\.com$    

11    RewriteRule (.*) http\://yybb120\.com$1 [NC,R=301]    

在其他情况下,如不同域名之间在IIS下的301重定向代码请看详细介绍:ISAPI Rewrite实现IIS 301转向。

  • PHP 301 重定向代码

301重定向也可以在php文件中通过加入php header来实现,代码如下:

1    <?php    

2    header(“HTTP/1.1 301 Moved Permanently”);    

3    header(“Location: http://yybb120.com/newpage.html”);    

4    exit();    

5    ?>    

  • ASP 301 重定向代码

1    <%@ Language=VBScript %>    

2    <%    

3    Response.Status=”301 Moved Permanently”    

4    Response.AddHeader “Location”, http://yybb120.com    

5    %>    

  • ASP.NET 301 重定向代码

1    <script language=”c#”runat=”server”>    

2    privatevoidPage_Load(objectsender, System.EventArgs e)    

3    {    

4    Response.Status = “301 Moved Permanently”;    

5    Response.AddHeader(“Location”,http://yybb120.com);    

6    }    

7    </script>    

  • CGI Perl下的301转向代码

1    $q= newCGI;    

2    print $q->redirect(“http://yybb120.com”);    

  • JSP下的301转向代码

1    <%    

2    response.setStatus(301);    

3    response.setHeader( “Location”, “http://yybb120.com”);    

4    response.setHeader( “Connection”, “close”);    

5    %>    

以上转载于 https://jingyan.baidu.com/article/5225f26b7ee144e6fb09086f.html


dnspod用url转发

1,先注册一个dnspod用户,如随便用qq号邮箱即可注册。

2,别忘记还得手机验证绑定。如果你不验证手机的话,URL转发功能是使用不了的

3,首先得添加你的域名。将自己的顶级域名添加到dnspod网站里面,

4,查看提示dns地址。添加域名后,默认会有二个已添加的根域名ns记录,就是dns地址。记住它,有需要用到的。

5,修改dns地址。跑到自己原域名注册管理网站,设置DNS地址为dnspod的dns地址。

注意,如果域名有开启安全保护,需要先关闭再修改。另,DNS修改后,需要24小时后完全生效。

特别提示:DNS修改前,先在dnspod添加好对应的解析记录。

6,
使用URL显性转发。(免费)

  • 可批量添加域名100个
  • 赠送2条显性URL转发
  • 10个DNS节点分布
  • 1G免费攻击防护
  • 7条主流搜索渠道SEO优化

当dnspod提示域名解析生效后,及域名由它解析使用1个月以上后,就可以使用URL显性转发了。

它的URL隐性转发是不开放的,需要另外单独算增值功能使用。(360每年)

  • 免费更换域名2次
  • 国内4大智能线路细分,国外线路细分
  • SLA达99%以上
  • 7条主流搜索渠道SEO优化
  • 12个DNS节点分布
  • 3G免费攻击防护
  • D监控自定义切换
  • 每月无限条微信通知,10条短信通知
  • 可批量添加域名200个
  • 赠送4条显性URL转发

使用nat123开放的URL转发。包括显性转发和隐性转发。

将自己的域名设置cname指向它提示的自主域名提示地址,即可以使用URL转发了。

解决80端口问题的80映射。

对于本地是公网IP,只是端口受限的,还可以通过nat123开放的80映射来解决,将自己的端口应用映射外网自己的域名。








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184173.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python运行不了怎么办_python nameerror

    python运行不了怎么办_python nameerrorpython将自己写的模块上传到PyPI服务器,报错error:<urlopenerror[SSL:CERTIFICATE_VERIFY_FAILED]certificatever

    2022年7月29日
    7
  • Linux-nmap命令使用

    Linux-nmap命令使用用namp对局域网扫描一遍,然后查看arp缓存表就可以知道局域内ip-mac的对应了namp比较强大也可以直接扫描mac地址和端口进行ping扫描,打印出对扫描做出响应的主机:  nmap-sP192.168.1.0/24仅列出指定网络上的每台主机,不发送任何报文到目标主机:  nmap-sL192.168.1.0/24  探测目标主机开放的端口,可以指定一个以…

    2022年5月13日
    37
  • ACM之Java输入输出[通俗易懂]

    ACM之Java输入输出[通俗易懂]一、Java之ACM注意点1. 类名称必须采用public class Main方式命名2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件4. 在有多行数据输入的情况下

    2022年5月9日
    166
  • JS实现倒计时代码实例「建议收藏」

    varcount=60*15;varcountdown=setInterval(CountDown,1000);functionCountDown(){if(count&gt;=0){varminutes=Math.floor(count/60);varseconds=Math.floor(count…

    2022年4月13日
    46
  • latex 公式编号的自定义「建议收藏」

    latex 公式编号的自定义「建议收藏」latex中的\tag{}是个可以给公式指定编号的,这里涉及到latex公式编号的取消与替代,可以参考latex:公式的序号做为更进一步的了解.但是要注意,虽然可以使用自己定义的编号,但是可以看出,公式的计数器是增加了的.\begin{subequations} \begin{align} \label{eq1} &f0=0,\\ \l…

    2025年6月19日
    2
  • 大数据应用实例[通俗易懂]

    大数据应用实例[通俗易懂]通过对全国各地不同时间段的购买华硕笔记本电脑的销售量进行大数据处理,将其通过汇总分析,即可制成图表的格式,使用户能对华硕笔记本销售量进行研究,可以查看出华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),购买的人数地域分布量,及购买的人群年龄分布,性别分布等等首先就是对华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),整体同比及移…

    2022年6月2日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号