重定向用户或中止

时间:2016-03-23 12:04:17

标签: asp.net iis url-rewriting

我在很久以前在asp.net上构建的网站上有一个目录,在我删除的某个目录中有很多aspx页面,包括实际目录,从站点地图中删除了信息,拒绝访问它robots.txt的。如果我去网站管理员工具,即使在90天后我看到很多错误,因为这些页面不再存在,如果我查看IIS日志,则访问者收到错误500(服务器错误)消息。在网站管理员工具中,您可以隐藏搜索一段时间或缓存中的单个页面,但这不是永久解决方案。我在网上搜索并没有找到它的解决方案,并且没有必要在asp.net或iis.net网站上询问,因为他们只是打开谷歌,键入几个关键词然后只是粘贴任何ole线,这将只浪费我的时间。那么,有没有人知道如何在IIS重写模块中阻止整个目录。

http://www.example.com/deleted_directory/every_aspx_page.aspx
http://www.example.com/deleted_directory/ *

http://www.example.com/404.aspx

我知道该行动可以是中止请求或永久

任何人都知道确切的网址重写规则是什么?

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试类似this的内容 您可以过滤“/ deleted_directory /”并转发到404.aspx页面。

您可以将它放到webconfig中,它将处理500(服务器错误)。

<customErrors mode="RemoteOnly" defaultRedirect="~/ERRORPAGES/Default.aspx" redirectMode="ResponseRewrite">
    <error statusCode="403" redirect="~/ERRORPAGES/Default.aspx" />
    <error statusCode="404" redirect="~/ERRORPAGES/404.aspx" />
     <error statusCode="400" redirect="~/ERRORPAGES/400.aspx" />
     <error statusCode="500" redirect="~/ERRORPAGES/500.aspx" />
</customErrors>

你可以把它放到Global.asax:

    protected void Application_Error()
    {
        Exception exc = Server.GetLastError();
        if (exc.GetType() == typeof(HttpException))
        {
            HttpException httpexc = (HttpException)exc;
            if (httpexc.GetHttpCode() == 500 && Request.Url.AbsolutePath.Contains("deleted_directory/"))
            {
                Response.Redirect("/404.aspx");
            }
        }
    }

答案 1 :(得分:0)

我通过创建URL重写以中止对该文件夹的请求来回答这个问题,这正是我想要的。我在IIS&amp;上找到了那种答案。 ASP网站