站点页面静态化具体解释

站点页面静态化具体解释

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

     

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


相关推荐

  • Hibernate二级缓存的使用「建议收藏」

    Hibernate二级缓存的使用「建议收藏」一、Hibernate共有两级缓存        Session级别缓存—-一级缓存(事务范围)        SessionFactory级别缓存—-二级缓存(进程范围) SessionFactory级别缓存        内置:Hibernate自带的,不可卸载.通常在Hibernate的初始化阶段,Hibernate会把映射

    2022年5月23日
    35
  • android studio简历Assets文件夹

    android studio简历Assets文件夹

    2021年9月17日
    45
  • 分布式事务、cloud、boot、常规队列MQ、elk、kafuka

    分布式事务、cloud、boot、常规队列MQ、elk、kafuka点击链接》》》这个博客里面的专栏。apache-jmeter-3.3的简单压力测试使用方法https://www.cnblogs.com/ios9/p/7644951.html#_label3 

    2022年5月15日
    29
  • Redis面试题(一): Redis到底是多线程还是单线程?

    Redis面试题(一): Redis到底是多线程还是单线程?0.redis单线程问题单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。1.为什么说redis能够快速执行(1)绝大部分请求是纯粹的内存操作(非常快速)(2)采用单线程,避免了不必要的上下文切换和竞争条件(3)非阻塞IO-IO多路复用2.redis的内部实现 内部实现采用epoll,采用了epoll+自己…

    2022年5月3日
    61
  • rtcm1005报文解析_rtcm1021-1027参数

    rtcm1005报文解析_rtcm1021-1027参数defparse_rtcm1005(rtcm1005):message_num=get_bin_para(rtcm1005[0:12],False,1,0)#协议idstation_id=get_bin_para(rtcm1005[12:24],False,1,0)#基站iditrf_year=get_bin_para(rtcm1005[24:30],False,1,0)#ITRF纪元22222gps_indicat.

    2025年6月2日
    4
  • tar打包命令(linux)

    tar打包命令(linux)1.打包命令:tar-cvf归档路径被打包文件路径。(c–createarchivev-verbosef–file,f指归档路径,故f必须放在其他选项之后,而且-可省略不写)单独打包命令:tar-cvf归档路径被打包路径.(整体文件变大,后缀一般是.tar)gzip压缩命令:tar-zcvf归档路径被打包路径.(gun-zip压缩,后缀一般是.tar.gz)bzip2压缩命令:tar-jcvf归档路径被打包路径.

    2022年5月31日
    37

发表回复

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

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