我在Web开发中使用旧技术有很长的经验,比如ASP类,我以前在很久以前开发过一个新闻网站。现在,我想使用更高级的技术升级它(我有很强的背景来重新学习PHP和ASP.Net)。 我的问题是: 我曾经通过ID从数据库中检索页面内容,如下所示:
mywebsite.com/NewsID.asp?ID=101
但是,我看到大多数网站现在使用不同的网址,例如今天的BBC,例如:
http://www.bbc.co.uk/news/world-latin-america-24680283
怎么做?!即不要让像我这样的BBC这样的网址不是我的经典之作
答案 0 :(得分:2)
您可以使用路由,这是告诉您的Web服务器(或其他等效组件)解释的方法
http://www.bbc.co.uk/news/world-latin-america-24680283
通过正则表达式或类似工具来表示
Function name: news
Slug: world-latin-america-
Id: 24680283
然后调用,例如
news.php?id=24680283
或
public ActionResult News(long id, string slug)
{
//
}
在LAMP系统中,可以使用Routing URLs in PHP中记录的mod_rewrite
设置路线。
在ASP.Net MVC上下文routes are set中,通过RegisterRoutes
Application_Start()
中的Global.asax.cs
调用[Route("news/{slug}-{id:int}")]
public ActionResult News(int id) { ... }
。
在最新版本的MVC中,您还可以使用RouteAttribute
使一切变得更简单:
{{1}}