请选择 进入手机版 | 继续访问电脑版

无忧编程_ASP.NET  / C# / PHP 程序员的软件世界

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 242|回复: 0

ASP.NET MVC-LowercaseRoutesMVC让网站的URL输出为小写

[复制链接]

259

主题

286

帖子

1159

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1159
发表于 2017-6-28 15:30:17 | 显示全部楼层 |阅读模式
ASP.NET MVC-LowercaseRoutesMVC让网站的URL输出为小写

ASP.NET MVC-Lowerca在 SEO 对于 URL 的讨论中,有部分的人是觉得网页的 URL 大小写对于 PageRank 是有影响,而有些人是说对于非使用 IIS 网页服务器的网站其 URL 的大小写才会有影响,对于我来说,其实有关于 URL 大小写与 SEO 的关系对于我来说并不是那么清楚,但为何又要介绍这个套件呢?

其实我们开发 ASP.NET MVC 网站很少会注意到 URL 大小写,多半我们都是在注意网页执行的正确以及使用者是否输入正确的 URL,但如果今天被客户要求需要将网站内所产出的 URL 都一律使用小写时,那么 LowercaseRoutesMVC 这个套件就派上用场了,这边就来介绍这一个套件。

LowercaseRoutesMVC - Map ASP.NET MVC routes to lowercase URLs
http://lowercaseroutesmvc.codeplex.com/

seRoutesMVC让网站的URL输出为小写

20130314081738990.png

NuGet - LowercaseRoutesMVC
http://nuget.org/packages/LowercaseRoutesMVC

20130314081806688.png

般我们在 ASP.NET MVC 所开发的网站里所产出的 URL 都会是以下的样子,

http://test.com/Home/Index or http://test.com/Order/List

如果是让使用者自行输入 URL 的话,一般来说并不会在输入时去区分大小写,以上 URL 就会输入以下,

http://test.com/home/index or http://test.com/order/list

前面有说到,假如要将网站产出的 URL 都转为小写的这样需求时,就是在 ASP.NET MVC 项目中藉由 NuGet 将 LowercaseRoutesMVC 安装到项目里使用就可以了,以下为安装以及使用的步骤,

Step.1 从 NuGet 安装 LowsercaseRoutesMVC

先准备好一个 ASP.NET MVC 网站项目,建立好 Model, Controller, View,

20130314081849861.png

P.S 这个示范用的 ASP.NET MVC 专案为 ASP.NET MVC 4.

预设的状况下,URL 都是以 Camel-cased 的方式呈现,就是我们 Controller 的 prefix 与 Action 名称是怎么输入的,然后再以 Route 设定来做输出,

20130314081926417.png

20130314082103636.png

20130314082127844.png

Step.2 透过 NuGet 安装 LowercaseRoutesMVC

在 NuGet 管理窗口中搜寻「LowercaseRoutesMVC」,会出现两个结果,我们这边需要安装的是第一个,而第二个「LowercaseRoutesMVC4」则是提供给 ASP.NET Web API HTTP routes 所使用,www.it165.net


20130314082156956.png

20130314082209622.png
Step.3 修改 RouteConfig.cs 的 Route 设定

接着是修改 RouteConfig.cs 的 Route 设定,原本是使用 routes.MapRoute() 来进行 route 设定,而在安装 LowercaseRoutesMVC 之后,这边就需要做修改,以下为原本 RouteConfig.cs 的内容,

20130314082254620.png

将原本使用 MapRoute() 方法改为使用 MapRouteLowercase() 方法,记得前面要引用 LowercasrRoutesMVC 的 Namespace,

20130314082331208.png

上面的设定修改完成后,重新建置项目,再一次执行网站,观察 HTML 原始码就可以看到原本为 Camel-cased 的 URL 已经是以 lower-cased 产出,

20130314082532502.png

20130314082545711.png

※ Area 的修改
我在原本的网站项目中新增一个 Area「Test」,

20130314082608428.png

在尚未做任何的设定修改前,我在 Home/Index 首页增加一个指向 Test/Product/List 的连结,而产出的 URL 结果如下,


20130314082640540.png

20130314082651915.png

而 Test/Product/List 网页的 URL 并没有转为 lower-cased,这是因为 Area 的 Route 设定并需要在 AreaRegistration 中做设定修改,以下是尚未做任何设定修改的 TestAreaRegistration.cs,

20130314082719638.png

这边的修改就如同在 RouteConfig.cs 的修改是一样的,如下,

20130314082747337.png

修改并重新建置项目,重新执行网站,原本首页指向 Test 区域的 URL 已经转为 lower-cased,

20130314082816844.png

进入到 Test 区域内的 Product/List 网页,也可以看到网页的 URL 也是以 lower-cased 呈现,

20130314082843622.png

虽然说这种指定网站内所有 URL 都要使用 lower-cased 呈现的需求是比较少,但假如有碰到这样的需求时,LowercaseRoutesMVC 这个套件就可以派上用场,而且在设定上也不会很繁琐(如果不写程序的话,是需要到 IIS 去修改 Url Rewrite rule 的设定)。

windows .net(C#+MSSQL) linux(php+mysql)  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软件编程 Inc.  

GMT+8, 2017-11-25 00:34 , Processed in 0.197281 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表