站点页面静态化具体解释

站点页面静态化具体解释

大家好,又见面了,我是全栈君。

     

URL静态化

    静态化一直以来都是最主要的seo要求之中的一个,但近一两年seo行业对是否一定要做静态化有了一些观念上的改变。

  

为什么静态化

  如今的站点绝大多数是数据库驱动,页面由程序实时生成。而不是其的在server上有一个静态html文件存在。当用户訪问一个网址时,程序依据url中的參数调用数据库数据,实时生成页面内容。因此动态页面相相应的url原始状态也是动态的。包括问号、等号及參数,如以下这样的典型论坛的url:

       3w点website点com/viewthread.php?tid=1234&&page=1

搜索引擎在发展初期(2006年—2007年)一般不太愿意爬行和收录动态url,主要原因是可能陷入无限循环或收录大量反复内容。造成资源极大浪费。最典型的无限循环就是某些站点上出现的万年历。非常多博客都按时间存档,一些宾馆、肮班查询站点都常常出现万年历形式。

  

搜索引擎蜘蛛碰到万年历。假设一直跟踪上面的链接,能够不停地点击下一月、下—年,无穷无尽陷入无限循环,每个日期相应的页面内容也没什么差别。真有用户一眼就能看出这是个日历,但搜索引擎蜘蛛面对的仅仅是一串代码,不一定能推断出事实上这是个万年历。

有时就算不存在无限循环。动态url也可能造成大量复制页面。

比方url:

         3w点website点com/viewthread.php?tid=1234&&page=1

和url:

       3w点website点com/viewthread.php?

page=1&&tid=1234
非常可能是全然一样的内容。url中參数顺序不同就是不同的网址,但调用參数一样,因此页面内容是一样的。假设CMS系统设计不周全,这些url都可能出如今站点上。
  更麻烦的是,有时某些參数能够是随意值,server都能正常返回页面,尽管内容全是一样或非常相似的。

比如,上面中的參数1234改为5678或其它什么数字。server非常可能也返回200状态码。
  所以曾经的搜索引擎对动态url敬而远之,要想站点页面被充分收录。站长须要把动态url转化为静态。
如何静态化
   最常见的方法是使用server的url重写模块,在AMPserver上一般使用mod_rewrite模块,Windowsserver也有功能相似的ISAPI等模块。

以LAMPserver为例。要想把url:
       3w点website点com/product.php?id=123
   静态化为:
       3w点website点com/product/=123
   须要启用servermod_rewrite模块,然后在上.hatccess文件里写入例如以下代码:
   RewriteRule/product/([0-9]+)/product.php?id=$1
url重写代码基于正則表達式。每一个站点的动态url结构不同,server设置也可能不同,代码也就不同。正則表達式的写法比較复杂。千变万化,通常须要程序猿编写。

在写url静态化代码时必须很小心,错了一个字符。多了一个斜杠等微小的不同,都可能造成灾难性的后果。
严格来说。这里所说的url静态化应该称为“伪静态化”,也就是说server还是不存在对应的文件,用户訪问时还是动态生成页面,仅仅只是通过url重写技术使网址看起来像是静态的。也有的CMS系统能够实现真正静态化,站长增添产品或文章后,系统会自己主动生成真实存在的静态的html文件。可是对搜索引擎来说,真正的静态与伪静态没有差别。

url不须要静态化吗
  近两三年搜索引擎对动态url的抓取有了非常大进步。一般来说url中有两三个參数,对收录不会造成多大影响。权重高的域名,再多几个问号也不是问题。只是一般来说还是建议将静态化,既能提高用户体验,又能减少收录难度。

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

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

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


相关推荐

  • JDK 安装 Java环境变量配置 详细教程「建议收藏」

    1、JDKjre-8u161-windows-x64.exe下载所有平台:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html选择“AcceptLicenseAgreement”根据系统选择对应的安装文件,64位系统安装64位JDK…

    2022年4月7日
  • jquery验证二代身份证

    jquery验证二代身份证$(‘#idcardno’).blur(function(){varidcard=$(this).val();varreg=/^\d{17}\d|x$/;varis_ok=reg.test(idcard);vararrExp=[7,9,10,5,8,4,2,1,6,3,7,9…

    2022年6月27日
  • Laravel Eloquent ORM理解[通俗易懂]

    Laravel Eloquent ORM理解[通俗易懂]laravelEloquentORM文档:https://laravel-china.org/docs/laravel/5.5/eloquent/1332首先,什么是EloqentORM  官方手册是如此解释的:“Laravel的EloquentORM提供了漂亮、简洁的ActiveRecord实现来和数据库的互动。每个数据库表会和一个对应的「模型」互动”,好吧问题来了  …

    2022年10月24日
  • db2 日志管理

    db2 日志管理DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。

    2022年6月13日
  • 构造函数的作用和特点[通俗易懂]

    构造函数的作用和特点[通俗易懂] 1. 构造函数的作用        构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用它的构造函数。一般来说, 构造函数有以下三个方面的作用:            ■ 给创建的对象建立一个标识符;            ■ 为对象数据成员开辟内存空间;            ■ 完成对象数据成员的初始化。2. 默认构造函数      …

    2022年9月7日
  • 用js来实现那些数据结构07(链表01-链表的实现)

    前面讲解了数组,栈和队列。其实大家回想一下。它们有很多相似的地方。甚至栈和队列这两种数据结构在js中的实现方式也都是基于数组。无论增删的方式、遵循的原则如何,它们都是有序集合的列表。在js中,我们新建

    2022年3月25日

发表回复

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

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