URL设计原则
在MVC框架下,我们可以对URL做完全的控制,自然就想到要设计出优良的url,URL究竟该如何设计。由于本人web开发经验很少,以下是书中的内容,我做了些概括:
1.url要尽量通俗易懂,不要把技术的东西包含在里面,比如下面这样的:
/my%20great%20article(使用/my-great-article为好)
2.有意义的文本总比ID数字让人感觉舒服
3.不要在url中带有后缀名
4.要有比较强的层次感,又要简短易记,比如:/Products/Menswear/Shirts/Red
5.url要大小写不敏感,并且尽量使用小写字母,mvc框架是大小写不分的
6.不要因为url的变更而弃用老的url,要使用跳转的方式
7.对于只读的操作使用get方式,对于要修改服务器数据的请求使用post方式;url要方便人们保存书签或分享网页,因此,对于分页显示的情况,分页要体现在url中
8.QueryString要尽量少用。当参数是为了参与某种算法,而不是为了直接的资源指向时,可以使用QueryString,因为用户此时不愿意手动输入url。比如page参数
301和302
同样是使客户端浏览器跳转,301是暗示永久跳转,可以暗示搜索引擎这个url将永久不用,当确实需要更形url时考虑;
302表示临时跳转,MVC的RedirectToRouteResult和RedirectResult使用302。
可以像下面这样进行301跳转:
{
public static PermanentRedirectToRouteResult AsMovedPermanently
(this RedirectToRouteResult redirection)
{
return new PermanentRedirectToRouteResult(redirection);
}
public class PermanentRedirectToRouteResult : ActionResult
{
public RedirectToRouteResult Redirection { get; private set; }
public PermanentRedirectToRouteResult(RedirectToRouteResult redirection)
{
this.Redirection = redirection;
}
public override void ExecuteResult(ControllerContext context)
{
// After setting up a normal redirection, switch it to a 301
Redirection.ExecuteResult(context);
context.HttpContext.Response.StatusCode = 301;
}
}
}
public ActionResult MyActionMethod()
{
return RedirectToAction("AnotherAction").AsMovedPermanently();
}
关于SEO(search engine optimization)
提高排名的技巧:
1.url使用关键字而不是数字
2.url使用较少的QueryString,不要使用下划线
3.单一内容单一url,不要多个url指向相同的内容
4.如果要多个url指向相同的内容,使用301跳转
5.网页的内容要可被“寻址”,要使用get方式,内容不要过于依赖post方式,或者js,flash,silverlight等客户端技术。