您可以在 ASP.net 中使用Context.RewritePath
.
在Global.asax中,创建一个Application.BeginRequest事件处理程序。
例如,如果您想提出以下请求
example.com/questions
实际返回结果
example.com/Questions/Default.aspx
全球.asax:
<%@ Application Language="C#" %>
<script runat="server">
void Application_BeginRequest(Object sender, EventArgs e)
{
string originalPath = HttpContext.Current.Request.Path.ToLower();
if (originalPath.Contains("/questions"))
{
String newPath = originalPath.Replace("/questions", "/Questions/Questions.aspx");
Context.RewritePath(newPath);
}
}
</script>
如果你的网站在 .NET Framework 4 之前运行任何东西,你必须手动打开web.configrunAllManagedModulesForAllRequests
,否则BeginRequest事件不会被触发:
<configuration>
...
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>