C#实现动态网站伪静态,使seo更友好

时间:2021-04-10 16:44:18

本教程将使用Visual Studio 2013手把手教你实现webform动态页面的伪静态。本教程配套的C#源码工程可通过我的github下载。地址:https://github.com/shellcheng/ReWirteWebform

本文地址:WebForm伪静态实现及ISAPI_REWRITE介绍

本教程由技术爱好者成笑笑(博客:http://www.chengxiaoxiao.com/)写作完成。如有转载,请声明出处。

本教程内容:

  • 伪静态介绍、作用

  • 用代码实现简单的伪静态

  • ISAPI_REWRITE组件的介绍及使用

1.伪静态介绍、作用

1.1伪静态介绍、作用

1.1.1为什么要伪静态

在搜索引擎优化领域,静态页面的权重是大于动态页面的权重的。例如index.aspx会大于index.aspx?id=1的权重。通常情况下,动态页面中?后面的参数是读取数据库内容显示在前台页面上的。

很显然如果id不同所展现的数据也是不同的。但搜索引擎会把所有的页面例如:index.aspx?id=1、index.aspx?id=2等所有的动态页面,认定为同一个页面index.aspx。为了增强搜索引擎的友好度,提高收录,我们需要实现把动态内容静态化。

1.1.2实现网页静态化

我们很明显可以实现读取数据库内容根据模版生成对应id的静态页面。但是像淘宝京东等数以万计的商品之下,所占用的存储是海量的,需要大量的硬盘存储来存储这些静态网页。这是很理想的状况,但是现实是无法做得到的。

所以伪静态闪亮登场~~~

1.1.3什么是伪静态?

伪静态就是我们把以前的动态参数放入url中通过后台逻辑,显示对应的数据。说白了就是,把我们以前的index.aspx?id=1的地址改为index-1.aspx页面(具体的伪静态的规则自己可以随便写的,在这里只是举例子),把动态参数去掉。我们在后台写相应的代码实现读取数据显示。

2.用代码实现简单的伪静态(WebFrom版本)

2.1目标:

访问:index-1.aspx。显示index.aspx?id=1的数据

2.2实现过程:

2.2.1:通过Visual Studio 2013新建一个web空项目。

C#实现动态网站伪静态,使seo更友好

2.2.2新建aspx页面,并在后台页面添加以下代码。

后台处理id参数,查询传递到前台界面。

C#实现动态网站伪静态,使seo更友好

前台页面显示数据:

C#实现动态网站伪静态,使seo更友好

至此我们访问index.aspx?id=1显示如下:

C#实现动态网站伪静态,使seo更友好

2.2.3添加新项Global.asax。

我们主要是重写aspx页面生命周期的Application_BeginRequest方法,获取用户访问的地址,根据正则进行匹配。交由原页面进行处理。

C#实现动态网站伪静态,使seo更友好

至此我们访问index-1.aspx可以正确显示

C#实现动态网站伪静态,使seo更友好

3.ISAPI_REWRITE组件的介绍及使用

组件下载地址:https://github.com/shellcheng/ReWirteWebform

使用步骤:

打开IIS---添加ISAPI筛选器-----64位机器需要添加32位和64位版本两个筛选器。

在目录下添加文件名为.htaccess的文件:

C#实现动态网站伪静态,使seo更友好

写入以下内容。RewirteRule后面的则是伪静态的规则。

微信号:net4k8k(做(4k+8k)+月薪的程序员)

微信名称:net知识分享

介绍:主要以发布和分享.Net和安卓文章为主,争做全栈开发工程师,爱学习,爱挑战,爱编程。

打造C#入门教程。总结自己已经习得的技术体系。分享到网络。为中国的软件复兴贡献自己的一份力。

如有不恰当之处,还请指正。

作者:成笑笑

职业:应届毕业生,找工作中。

本人联系方式:cxx@chengxiaoxiao.com

我的自媒体:

GitHub:https://github.com/shellcheng

My CnBlogs:http://www.cnblogs.com/happpytoo/

今日头条:http://toutiao.com/m5443584213/

一点资讯:http://www.yidianzixun.com/home?page=channel&id=m21753

新浪微博:http://weibo.com/5706473282/

搜狐公众平台:http://mp.i.sohu.com/profile?xpt=NUJENDc2NjZENTIyMjlBRjk4QkIzRDczNTVFMUVFODBAcXEuc29odS5jb20=