如何摆脱URL中的实际文件名?

时间:2011-10-09 19:27:41

标签: asp.net iis url

例如,此网址为http://stackoverflow.com/questions/ask,而不是http://stackoverflow.com/questions/ask.aspx。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:1)

您可以使用此技巧和工具:

http://forums.iis.net/t/1150350.aspx - IIS解决方案

http://forums.asp.net/t/979581.aspx - ASP.NET 404页面解决方案

答案 1 :(得分:0)

添加对程序集System.Web.Routing的引用,然后将以下内容添加到global.asax文件中:

protected void Application_Start(object sender, EventArgs e)
{
     RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("",
        "questions/ask/{question}",
        "~/questions/ask.aspx");
}

答案 2 :(得分:0)

如果您的问题不是特定于aspx页面,您可以在任何运行apache的web服务器上使用.htaccess文件(和mod_rewrite - 但几乎所有这些都是。)

在此网站上查看有关.htaccess的各种问题,或在线查看许多简单的教程。

基本上你可以在你希望受影响的目录的根目录中放置一个特殊文件.htaccess,基本上可以说

您可以使用about_us/details.php

而不是about_us/details

这是一个非常简单的例子

RewriteEngine on 
Options +FollowSymlinks

RewriteRule ^questions/ask ../questions/ask.aspx [L]

答案 3 :(得分:-1)

当Web服务器实现将给定URL模式映射到要提供的实际内容的处理程序时,就会发生这种情况。

在这个网站中,它可能来自MVC框架的使用(猜测)。

在Windows IIS上,您可以使用http://www.iis.net/download/URLRewrite