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输出为小写
NuGet - LowercaseRoutesMVC
http://nuget.org/packages/LowercaseRoutesMVC
般我们在 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,
P.S 这个示范用的 ASP.NET MVC 专案为 ASP.NET MVC 4.
预设的状况下,URL 都是以 Camel-cased 的方式呈现,就是我们 Controller 的 prefix 与 Action 名称是怎么输入的,然后再以 Route 设定来做输出,
Step.2 透过 NuGet 安装 LowercaseRoutesMVC
在 NuGet 管理窗口中搜寻「LowercaseRoutesMVC」,会出现两个结果,我们这边需要安装的是第一个,而第二个「LowercaseRoutesMVC4」则是提供给 ASP.NET Web API HTTP routes 所使用,www.it165.net
Step.3 修改 RouteConfig.cs 的 Route 设定
接着是修改 RouteConfig.cs 的 Route 设定,原本是使用 routes.MapRoute() 来进行 route 设定,而在安装 LowercaseRoutesMVC 之后,这边就需要做修改,以下为原本 RouteConfig.cs 的内容,
将原本使用 MapRoute() 方法改为使用 MapRouteLowercase() 方法,记得前面要引用 LowercasrRoutesMVC 的 Namespace,
上面的设定修改完成后,重新建置项目,再一次执行网站,观察 HTML 原始码就可以看到原本为 Camel-cased 的 URL 已经是以 lower-cased 产出,
※ Area 的修改
我在原本的网站项目中新增一个 Area「Test」,
在尚未做任何的设定修改前,我在 Home/Index 首页增加一个指向 Test/Product/List 的连结,而产出的 URL 结果如下,
而 Test/Product/List 网页的 URL 并没有转为 lower-cased,这是因为 Area 的 Route 设定并需要在 AreaRegistration 中做设定修改,以下是尚未做任何设定修改的 TestAreaRegistration.cs,
这边的修改就如同在 RouteConfig.cs 的修改是一样的,如下,
修改并重新建置项目,重新执行网站,原本首页指向 Test 区域的 URL 已经转为 lower-cased,
进入到 Test 区域内的 Product/List 网页,也可以看到网页的 URL 也是以 lower-cased 呈现,
虽然说这种指定网站内所有 URL 都要使用 lower-cased 呈现的需求是比较少,但假如有碰到这样的需求时,LowercaseRoutesMVC 这个套件就可以派上用场,而且在设定上也不会很繁琐(如果不写程序的话,是需要到 IIS 去修改 Url Rewrite rule 的设定)。