日期:2014-05-18  浏览次数:20456 次

扩展名.aspx没意思,我想换成.mspx 和microsoft.com页面一样的
请问在asp.net2.0下如何把扩展名变为.mspx  
比如   http://www.microsoft.com/windows/default.mspx
就要这样效果就可以,谢谢!

------解决方案--------------------
可以啊,使用Rewriter
------解决方案--------------------
在IIS管理器里把.mspx映射到Aspnet_isapi.dll 上,参考

http://support.microsoft.com/kb/308001/zh-cn


http://blogs.msdn.com/gduthie/archive/2007/03/14/custom-file-extensions-in-asp-net-2-0.aspx
------解决方案--------------------
需要在IIS设置,想改成什么就改成什么.
------解决方案--------------------
在IIS中设置或都URL重写,想改成什么样都行
------解决方案--------------------
开始 》 运行 》 inetmgr 》 网站/虚拟目录 》右键 》 属性 》 主目录/虚拟目录 》 配置 》 映射 》 添加 》

可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
扩展名:.mspx

------解决方案--------------------
<CustomConfiguration>
<urls>
<add virtualUrl= "~/microsoft*.* " destinationUrl= "~/default.aspx " />
<add virtualUrl= "~/microsoft* " destinationUrl= "~/default.aspx " />
<add virtualUrl= "~/m/i/c/rosoft.aspx " destinationUrl= "~/default.aspx " />
</urls>
</CustomConfiguration>

------解决方案--------------------
1.可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
扩展名:.mspx

同时去掉确认文件存在前的勾

2.如果你的实际文件名是以.mspx结尾的,添加

<compilation>
<buildProviders>
<add extension= ".mspx " type= "System.Web.Compilation.PageBuildProvider "/>
</buildProviders>
</compilation>


<httpHandlers>
<add verb= "* " path= "*.mspx " type= "System.Web.UI.PageHandlerFactory "/>
</httpHandlers>

3. 如果你的实际文件名是以.aspx结尾的,在global.asax里(或者用urlrewrite):

<%@ Application%>
<script language=C# runat= "server ">
const string ASPX_EXT = ".aspx ";
const string MSPX_EXT = ".mspx ";
const string REWRITE_KEY = "Rewrite ";

protected void Application_BeginRequest(Object sender, EventArgs E)
{
string url = Context.Request.RawUrl.ToLower();
if (url.IndexOf(MSPX_EXT) > 0)
{
Context.Items[REWRITE_KEY] = true;
url = url.Replace(MSPX_EXT,ASPX_EXT);
Context.RewritePath(url);
}
}

protected void Application_PreRequestHandlerExecute(Object sender, EventArgs E)
{
if (Context.Items[REWRITE_KEY] != null)
Context.RewritePath(Context.Request.RawUrl);
}
</script>