站点页面静态化具体解释

站点页面静态化具体解释

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

     

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode 最长有效括号_字符指针赋值为什么不能加大括号

    leetcode 最长有效括号_字符指针赋值为什么不能加大括号给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”示例 2:输入:s = “)()())”输出:4解释:最长有效括号子串是 “()()”示例 3:输入:s = “”输出:0题解括号匹配:(看作+1,)看作-1,所有满足条件的括号应该是前缀和>=0,并且总和==0class Solution {public: const int INF =

    2022年8月8日
    7
  • Java中compareTo()方法比较字符串详解

    Java中compareTo()方法比较字符串详解中心:String是字符串,它的比较用compareTo方法,它从第一位开始比较,如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型1.当两个比较的字符串是英文且长度不等时,1)长度短的与长度长的字符一样,则返回的结果是两个长度相减的值a=”hello”;b=”hell”;num=1;或者a=”h”;b=”hello”;num=4;2)…

    2022年7月13日
    18
  • sqlserver数据库同步工具_sql server数据库安装

    sqlserver数据库同步工具_sql server数据库安装 一、确认数据库运行环境是否配置正确打开SQLServerManagementStudio,新建查询: select*fromsys.servers GO //这里可得到原来的计算机名称。然后将其记录下来(复制即可)  看这里的name是否和你的服务器的计算机名称一样,如果一样可以跳到文档(二),否则请按如下操作更改 新建查询:

    2022年10月10日
    4
  • HttpCanary下载_php自我介绍网页代码

    HttpCanary下载_php自我介绍网页代码前言首先,我们无论学习哪个框架,都要带着问题,带着思考去学习思考1:HttpRunner是什么?思考2:HttpRunner的设计模式是什么?思考3:为什么我们要学习HttpRunner?他的

    2022年7月28日
    11
  • 菜鸟教程 Java 学习笔记 (基础教程)

    1、Java对象和类Java作为一种面向对象的语言,支持以下基本概念:多态、继承、封装、抽象、类、对象实例、方法、重载。对象:对象是类的一个实例,有状态和行为。类:类是一个模板,它描述一类对象的行为和状态。1.1创建对象对象是根据类创建的,在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:(1)声明:声明一个对象,包括对象名称和对象类型。(2)实例化:使

    2022年4月4日
    49
  • 2018最新APP Android UI设计规范「建议收藏」

    2018最新APP Android UI设计规范「建议收藏」设计稿尺寸:从目前市场主流设备尺寸来看,我们要用1080x1920PX来做安卓设计稿尺寸。以1080x1920px作为设计稿标准尺寸的原由:从中间尺寸向上和向下适配的时候界面调整的幅度最小,最方便适配。大屏幕时代依然以小尺寸作为设计尺寸,会限制设计师的设计视角。用主流尺寸来做设计稿尺寸,极大的提高了视觉还原和其他机型适配。所以做安卓设计稿时请以1…

    2022年6月18日
    41

发表回复

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

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