当前位置:  开发笔记 > 编程语言 > 正文

如何通过ASP.NET重定向和修改无扩展名的URL?

如何解决《如何通过ASP.NET重定向和修改无扩展名的URL?》经验,为你挑选了1个好方法。

我们已经将该结构重新设计为具有多个业务部门的网站.现在我想将(301)重定向到新页面.

IE:
www.example.com/abc
现在是www.example.com/default.aspx?article=abc

我曾尝试使用Global.asax来实现这一点,并且在我通过它进行调试时它可以正常工作.

        if (Request.RawUrl.Contains("abc"))
        {
            Response.RedirectLocation = "/default.aspx?article=abc";
            Response.StatusCode = 301;
            Response.StatusDescription = "Moved";
            Response.End();
        }

所以http:// localhost:1234/example/abc正确重定向,但是(其中1234是调试服务器的端口)
http:// localhost/example/abc不重定向,它给了我404.

有任何想法吗?


附加信息:如果我转到http://localhost/example/abc/default.aspx,那么它会正确重定向.



1> Jason Buntin..:

好吧,如果端口指示您正在使用内置Web服务器(VS附带的那个),这可能有效,因为它始终通过ASP.NET框架路由请求.

以/ abc结尾的请求不会自动路由到ASP.NET框架,因为IIS可能不会"知道"您希望它们.您需要检查IIS设置以确保此类请求被路由到aspnet_isapi.dll


编辑:要完成此任务,您需要添加通配符映射:

    在IIS管理器中,展开本地计算机,展开"网站"文件夹,右键单击所需的网站或虚拟目录,然后单击"属性".

    单击相应的选项卡:主目录,虚拟目录或目录.

    在"应用程序设置"区域中,单击"配置",然后单击"映射"选项卡.

    要安装通配符应用程序映射,请执行以下操作:

    在"映射"选项卡上,单击"添加"或"插入".

    在"可执行文件"文本框中键入DLL的路径,或单击"浏览"导航到该文件夹​​(例如,ASP.NET 2.0 dll位于c:\ windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll上机)

    对于扩展,当然使用".*"而不带引号

    选择要查找的动词(GET,HEAD,POST,DEBUG是ASP.NET的常用动机,您决定)

    确保选中"脚本引擎"或"应用程序引擎"

    取消选中"检查该文件是否存在"

    点击没关系.

我可能会对此不以为然,但如果我是,希望有人会纠正我.:)

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有