Asp.Net 4.0 SEO增强之 UrlRouting

news/2024/5/15 11:06:59/文章来源:https://blog.csdn.net/weixin_30716141/article/details/96384393

在.Net 4.0之前我们为了做出搜索引擎友好的,对用户也友好的url都是需要自己实现Url重写,现在不需要了,.Net 4.0为我们做这一切。UrlRouting之所以称之为Routing是因为它不但实现了Url重写还可以通过参数得到重写后的Url在页面上使用。

1. Url Routing 的通常用法
UrlRouting在Asp.Net Mvc项目中被广泛使用,在Mvc中很好用,所以移植到了webform中,我们先看下在webform中的使用方式
假定一个使用场景:我们需要做博客每日文章的页面,我们希望的url地址是:
/archive/2010/05/10/default.aspx
这个地址将被映射到~/posts.aspx文件上

要使用UrlRouting,需要将UrlRouting的规则注册到RouteTable中,如下Global文件中注册Routing规则的代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void RegisterRoutes(RouteCollection routes)
{
    routes.Ignore("{resource}.axd/{*pathInfo}");
  
    routes.MapPageRoute("blogs", //给这个UrlRouting规则起一个名字
        "archive/{year}/{month}/{date}/default.aspx", //希望的友好Url地址格式
        "~/blogs.aspx", //映射到的aspx页面路径
        false, //是否需要检查用户权限
        new RouteValueDictionary{ { "year", DateTime.Now.Year },
            { "month", DateTime.Now.Month },
            {"date", DateTime.Now.Date}
        },//参数的默认值
        new RouteValueDictionary { 
            {"year",@"(19|20)\d{2}"},
            {"month",@"\d{1,2}"},
            {"date",@"\d{1,2}"}
        } //参数的规则,我们在这里限制url中的年月日是我们想要的数据格式
        );
  
}
  
void Application_Start(object sender, EventArgs e)
{
    //在Application_Start时注册的Routing规则
    RegisterRoutes(RouteTable.Routes);
}

2. 在页面中使用UrlRouting参数值
  1) 在后台代码中使用Route的值

?
1
2
3
4
5
6
protected void Page_Load(object sender, EventArgs e)
{
    string year = (string)RouteData.Values["year"];
    string month = (string)RouteData.Values["month"];
    string date = (string)RouteData.Values["date"];
}

  2) 在页面上使用

?
1
2
3
<asp:Literal ID="literalYear" runat="server" Text="<%$RouteValue:year %>"></asp:Literal>
    -<asp:Literal ID="literal1" runat="server" Text="<%$RouteValue:month %>"></asp:Literal>
    -<asp:Literal ID="literal2" runat="server" Text="<%$RouteValue:date %>"></asp:Literal>

  3) 在DataSource中使用RouteParameter

?
1
2
3
4
5
6
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
    SelectCommand="SELECT BlogID,BlogTitle FROM Blogs Where Category = @category">
    <SelectParameters>
        <asp:RouteParameter Name="category" RouteKey="category" />
    </SelectParameters>
</asp:SqlDataSource>

  4) 在页面上显示RouteUrl

?
1
<a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>2010年5月1日的博客</a>


3. UrlRouting和UrlRewrite的区别

UrlRouting相对于Url重写是一个比较新的事物,UrlRouting的长处是可以做双向转换,既可以做url重写,还可以根据一些参数获得重写后的Url地址,但是它也有自己的不足之处,比如说如果你想连域名一起重写,比如博客地址yukaizhao.cnblogs.com这样的重写,UrlRouting就做不到了,只能用UrlRewrite。

我在使用路由映射的时候遇到了这种情况,只有无扩展名好使,有扩展名不好使,出错。

我先去看IIS中的处理程序映射

 

这三个服务都是有的。

 

 

 

 

 

 

然后我新建了一个“通配符脚本映射”

 

 

意外的竟然好使了,原因应该是自带服务权限不够,不过不知道在什么地方修改(继续找)。

我一个朋友那干脆连路由都不好使,但是自己加上了通配符脚本也都好使了。

 

 

注意: 这个里面是有优先级的,而且取routing name的时候一定记住不能冲突,比如, routes.MapPageRoute("ProductHome", "Product", "~/ShowProductHome.aspx");  这个里面ProductHome必须是独一无二的,否则会引起冲突,而且,你solution里面也不能有和这个相同名字的文件夹。

 

转载于:https://www.cnblogs.com/cuihongyu3503319/archive/2012/12/06/2806229.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_783903.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外链引入css有哪些方式_游戏类网站外链建设需要规避的问题

游戏类网站外链建设需要规避的问题。第一&#xff0c;建设软文外链需要谨慎。要知道软文外链通常是一种较为高质量的外链&#xff0c;百度对此也表示了认可。有的游戏类网站还因此让自己的网站内容得到了更多的转载量。不过这里就存在着一个问题&#xff0c;那就是现在很多游戏…

hao123电脑版主页_Hao123这么简单的网站,百度为什么肯花5000万收购

在知名流量监测网站ALEXA上&#xff0c;Hao123历史上曾经紧随百度和淘宝&#xff0c;排名过第三。是什么让这样一个看似简陋的网站&#xff0c;有这么大的流量&#xff0c;又为什么百度肯花5000万收购。一切都从它的创始人&#xff0c;李兴平说起。1、创始人曾是网瘾少年李兴平…

RequireJs构建网站

requireJS构建网站 一.概要 requireJS添加了对jquery的amd支持&#xff0c;并整合了一个require-jquery.js脚本库&#xff0c;因此当我们需要requirejquery来构建项目的时候仅需要引入require-jquery.js就搞定了。 模块化管理有什么作用&#xff1a; 1.易管理维护。 2.按需加载…

html网页制作需要审美,哪些网站能提高HTML5网站设计师的审美?

很多人在动手做网站的时候&#xff0c;感觉无从下手。一方面是对操作不熟悉&#xff0c;另一方面是设计没灵感。一个网站做得好不好&#xff0c;除了技术关&#xff0c;美工也同样重要。操作上需要大家慢慢积累&#xff0c;而提升设计灵感&#xff0c;你只需要看这10个网站。1、…

利用其他网站的搜索结果_科普一下“网站SEO”,关键字搜索结果排名的艺术

前言什么是SEO呢&#xff1f;SEO是Search Engine Optimization&#xff0c;意为“搜索引擎优化”&#xff0c;一般简称为搜索优化。对于SEO的主要工作就是通过了解各类搜索引擎如何抓取互联网页面&#xff0c;如何进行索引以及如何确定其对某一个特定关键词的搜索结果排名等技术…

用python爬取网站数据期末作业_Python爬虫爬取博客园作业

分析一下他们的代码&#xff0c;我在浏览器中对应位置右键&#xff0c;然后点击检查元素&#xff0c;可以找到对应部分的代码。但是&#xff0c;直接查看当前网页的源码发现&#xff0c;里面并没有对应的代码。我猜测这里是根据服务器上的数据动态生成的这部分代码&#xff0c;…

整理了一周的Python资料,包含各阶段所需网站、项目,收藏了慢慢来

这周应该有不少学校已经开学了&#xff0c;那么同学们都该动起来了&#xff0c;把家里面的那些懒习惯给扔掉了可以。 不知怎么的&#xff0c;最近不少关注我的读者都开始私信我怎么学好python&#xff1f;零基础转行是不是合适&#xff0c;还有希望吗&#xff1f;今年30了&…

linux浏览器老显示安全链接,Chrome浏览器显示“网站连接不安全”怎么解决?解决方法分享...

chrome浏览器是一个非常受欢迎的搜索服务软件&#xff0c;这款软件可以满足用户非常多搜索需求&#xff0c;有很多用户都会使用这款软件进行搜索&#xff0c;功能非常的全面&#xff0c;但是在使用Chrome浏览器的也会遇到一般浏览器都会遇到的问题&#xff0c;今天小编就会与大…

产品展示网站源码_ZBLOG免费网站导航主题 – 简单且支持内页详情目录模板

之前一段时间老蒋和从业网赚类网站的网友闲聊到看到有几个做网赚导航类型的网站盈利情况还是不错的&#xff0c;当然我不熟悉这个领域也没有打算做接触这个行业。不过我看到有不少网友在寻找类似的目录导航类网站源码&#xff0c;而且看到有些简单的源码居然还需要付费购买&…

毕业设计-证券宣传手机微网站的设计与实现

本文介绍基于.net的证券公司宣传微网站手机网页的设计与实现方法。 随着计算机技术的快速发展&#xff0c;基于Web的计算机网络金融、证券宣传或交易网站已成为现代金融理财发展的热点,B/S(Browser/Server)结构的互联网宣传也逐步在各大金融证券中得到了广泛的应用[1]。互联网金…

遗传算法matlab_史上最强的MATLAB自学网站,你收藏了吗???

各位小伙伴可点击此处&#xff0c;即可进入到优化算法交流地官方账号主页&#xff08;推荐&#xff09;&#xff0c;谨防上当受骗。hello&#xff0c;大家好&#xff01;这几天是全国大学生数学建模竞赛的比赛时间&#xff0c;首先预祝各位参赛的同学能够取得好成绩。今天&…

linux更换域名全站301,网站换域名必看,全站301重定向代码分享

网站换域名了&#xff0c;至于为什么要换不多说了&#xff0c;伤心事&#xff01;犹豫了半年&#xff0c;新域名也早买好了&#xff0c;一直没下定决心要换域名&#xff0c;毕竟8年老站&#xff0c;中国不多说了&#xff0c;入题&#xff0c;想把域名换成 http://www.125jz.com…

织梦html标题怎么改,织梦网站seo优化技巧-改栏目名称seo标题即可

你们了解过织梦网站seo优化技巧吗?使用该优化首先你要改栏目名称为seo标题&#xff0c;然后在网站的UR路径上进行拼音的修改&#xff0c;修改完之后要以文章的路径保存好&#xff0c;感兴趣的话就随小编一起来了解下吧!第一步网站标题seo优化技巧:列表页标题优化技巧&#xff…

企业网站建设流程步骤,教你快速建网站

企业网站的重要性不言而喻&#xff0c;很多企业都想建一个企业网站&#xff0c;这样既能提高企业形象&#xff0c;还可以助力网络营销和品牌推广。那么如何参与到企业网站建设流程中呢&#xff1f;其实这个流程分五步&#xff0c;今天就为大家介绍一下。 第一步&#xff1a;确定…

模仿某网站招聘列表

引言 关注到一朋友所在公司的网站&#xff0c;看到招聘信息部分&#xff0c;突然觉的这个效果简单并且可复用&#xff0c;然后自己就练习了一把。 缺点 点击标题展开内容后&#xff0c;文字有点抖动&#xff0c;还没排查出来问题所在。 页面 1 <div classjobs_box>2 …

网狐网站后台发布与部署

发布成功并部署OK是这样子的 在部署前要先启用IIS功能 在控制面板的程序与功能左边可打开启用Windows功能窗口 IIS功能启用后可打开 IIS管理器,默认添加了Default Web Site

java 期刊,JSP/Java的期刊在线投稿系统|网站程序设计|程序源码

视频演示网址&#xff1a;http://www.bysjdq.com/project/show/CBADCFADD5E934B6.shtml?tff(咨询特价)系统功能模块设计1&#xff0e;系统登录&#xff1a;系统登录是用户访问系统的路口&#xff0c;设计了系统登录界面&#xff0c;包括用户名、密码和验证码&#xff0c;然后对…

让你的IIS网站支持https协议

没加协议前,http访问 加上https协议支持后,通过https来访问 成功加了https访问协议后会看到红色箭头指向位置的443访问链接 在加https协议前要先已导入服务器证书

DotNetCore5.0 WebApi 发布IIS服务器后网站无法打开报404问题处理

解决方法: 在web.config中aspNetCore节点加入 <environmentVariables><environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /></environmentVariables> 如下图所示 成功访问webapi网站 注意配置https访问

ubuntu18.04编译PHP8.0.9源码并安装PHP服务器及安装Nginx1.14.0服务器运行PHP网站

进入用户主目录 cd $HOME 下载PHP8.0.9源码 wget https://www.php.net/distributions/php-8.0.9.tar.gz 解压到/usr/local/src目录 sudo tar zxvf php-8.0.9.tar.gz -C /usr/local/src ls查看解压后文件