zoukankan      html  css  js  c++  java
  • URL静态化,URL伪静态,URL重写到底是什么还有页面静态化

    做SEO的朋友现在都知道了,URL静态化、URL伪静态、URL重写对SEO的重要性,搜索引擎喜欢静态的网站页面。今天我们来详细分析一下URL静态化、URL伪静态、URL重写这三者的区别。

          URL静态化。URL静态化 就是在你的网站服务器上现实存在的HTML页面,每个HTML页面对应着你网站上的一个URL。常见的可以生成URL静态化页面的网站开源程序有DEDECMS和其它一些CMS内容管理系统,WordPress在安装插件后也可以实现URL静态化。URL静态化和伪静态不同的地方就是URL静态化需要生成HTML文件,如果文件太多生成一次可能需要很长的时间,这一点不太方便。

          URL伪静态。URL伪态是最常见的网页存在形式,URL伪静态看起来和URL静态化完全一样,但实际上URL对应的文件是不存在的,是用技术手段实现的。伪静态的优点很多,比如不生成现实的HTML文件,就不会占用网站空间,管理方便,维护方便,和URL静态化一样有利于SEO。

          URL重写。URL重写技术就是我们常见的Rewrite技术,属于URL伪静态技术中的一种,现在是被广泛应用于各种系统环境,比如目前用得最多的LINUX 系统PHP环境,还有Asp.net环境,都是通过编辑配置文件规则实现的,例如我们常用的在LINUX系统PHP环境下的301重定向,就是通过Rewrite技术实现的。

          做SEO的朋友们一定要懂得URL静态化和URL伪静态的设置,这是做SEO站的基本要求。

     

     

     

    页面静态化

     

      优点:降低数据库、web服务器压力,访问速度比较快; 同时,让搜索引擎搜录该链接的几率大,有助于seo

     

      思路:将"newsDetail.aspx?id=101"动态的生成的网页,下载到自定的文件夹,然后重新命名:20120319/101.htm。这样用户在访问的时候,就直接访问101.htm,静态页的好处这时就体现了。

     

      示例代码:

     

    //文章编号id
           string newPath = id + ".htm";
                string localPath = HttpContext.Current.Server.MapPath("~/20120319/" + newPath); //HostingEnvironment.MapPath();
                //创建文件夹
                  Directory.CreateDirectory(Path.GetDirectoryName(localPath));
                WebClient wc = new WebClient();
                wc.Encoding = Encoding.UTF8;
                //通过WebClient向服务器发Get请求,把服务器返回的html内容保存到磁盘上。以后用户直接请求html文件请求。
                  wc.DownloadFile("http://localhost:7930/newsDetail.aspx?id=" + art.id, localPath);

     

       页面的a标签就可以这么写:<a href='20120319/<%#Eval("id") %>.htm'><%#Eval("title")%></a>

     

      静态页注意几个问题:

     

      1.页面编码问题:需要保存的页面指明编码方式(<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />),

     

       WebClient下载网页时,也要注意编码问题。

     

      2.路径: 图片、js、css等都用绝对路径

     

          3.页面上不要使用服务器控件,都用ajax处理

     

    Url重写

     

      页面静态化和URL重写目的不一样,URL重写和页面静态化都可以SEO,

     

      但是URL重写SEO的开发难度小,页面静态化除了SEO之外还能大大降低服务器的压力。只有经常被访问的、很少变化的内容做成静态化。

     

      示例代码

     

      protected void Application_BeginRequest(object sender, EventArgs e)
           {
        string url = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;//获得用户要访问的资源。这个属性获得的是虚拟路径
          //判断用户访问的是否是/Art/newsDetail-101.aspx格式
          Match match = Regex.Match(url, @"~/Art/newsDetail-(\d+)\.aspx");
        if (match.Success)
        {
            string id = match.Groups[1].Value;
            //把客户端请求发给内部的其他页面
              HttpContext.Current.RewritePath("~/Art/newsDetail.aspx?id=" + id);
        }
    }

     

     

    总结一下

    1.URL重写和页面真正的静态化,都可以做SEO优化,他们对于搜索引擎来说没有区别。

    2.页面静态化还有一个主要的原因就是减小服务器和数据库压力,静态化一般是不变化的信息,比如新闻等等,所以一个系统可以静态化的就制作成静态页面,如果和服务器交互多的页面,那么还保持原来的动态页面,不过通过URL重写充能,做SEO。

    3.还有一些和服务器交互不多的页面,比如用户信息页面,一般都是每个用户生成一个静态信息页面,每次修改用户信息的时候,动态的生成静态页面,然后替换原来的静态页面。

    4.生成静态页也有很多问题,不说寻址和映射问题,如果静态页面太多的话,存储和管理也是问题。所以动态页面和静态页面遇到具体问题要具体分析,选择最优方案。

    5.如果只想做SEO的话,那完全可以只做URL重写。

    6.另外提一下,.net中有页面缓存的技术,这个服务器压力和生成静态页面有些相似,具体技术大家自己查资料吧(其实页面缓存是静态页的一种折中的办法,不过它局限在存储在内存中,会占用内存)。

     

  • 相关阅读:
    pythonchallenge(二)
    pythonchallenge(三)
    pythonchallenge(一)
    [译]Python编写虚拟解释器
    [译]用R语言做挖掘数据《七》
    [译]用R语言做挖掘数据《六》
    [译]用R语言做挖掘数据《五》
    编译安装php容易出现的问题以及解决办法
    关于nodejs模块安装后找不到包解决办法
    gulp的入门
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/2804221.html
Copyright © 2011-2022 走看看