5

仅作为示例提到了 stackoverflow,但如果您查看 URL 上方的 ask 是

http://stackoverflow.com/questions/ask

这意味着 /ask 是一个子目录,但他们也为特定的问题页面执行此操作。您如何在 .NET 中对此进行编码?

与其说是代码问题,不如说是技术问题。我知道这对 SEO 来说非常有用,但是您如何创建一个站点以使每个“页面”都是它自己的目录?动态地。

你有模板还是隐藏重定向???

如何??:)

4

5 回答 5

10

它被称为 URL 重写:

使用 ASP.NET 重写 URL

MSDN:ASP.NET 中的 URL 重写

编辑:正如@Justice 指出的那样,StackOverflow 使用Routing

于 2009-03-03T01:31:42.803 回答
6

StackOverflow 使用 .NET 3.5 SP1 附带的称为路由的东西。路由是许多 MVC 框架的流行特性,例如 ASP.NET MVC、Ruby on Rails 以及许多 Python 和 PHP 框架。

于 2009-03-03T01:51:41.833 回答
5

Stack Overflow 是使用 ASP.NET MVC 构建的,它使用了一种称为路由的技术,请参阅:

Stack Overflow 是用什么构建的?

路由

于 2009-03-03T01:39:04.923 回答
1

Stack Overflow 使用ASP.net MVC

MVC 使用 URL + Query String 来确定内容,所以它不像是指向特定页面的 URL,而更像是一些要显示的数据属性的分层路径

EG https://stackoverflow.com/users/ [把用户名放在这里]/[把用户名放在这里]

提示网站显示路径中指定 ID 的用户(在这种情况下,用户名可能只是为了踢球),而不是仅为该用户创建的特定页面。

于 2009-03-03T01:34:26.073 回答
1

我已经看到通过简单地为每个网页创建一个文件夹然后让每个文件夹包含一个 Default.aspx 文档来实现这一点(假设 Default.aspx 在 IIS 中设置为默认文档,这是默认设置)。然后,您可以导航到站点上的任何文件夹,而无需指定页面 (Default.aspx)。

对于动态部分,我使用过这种方式的 CMS 系统,Default.aspx 页面只是从一些主模板继承而来,CMS 系统利用 ASP.NET 渲染引擎来动态完成网页。

使用文件夹对站点结构来说可能有点繁重,但它是一种从浏览器中删除页面名称的简单方法。

This is how I structure my website and avoid having to use page names... for example http://www.innovaapps.net/Blog simply brings up the default.aspx page without having to specify the page name.

于 2009-03-03T03:38:19.270 回答