我在很久以前在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
我知道该行动可以是中止请求或永久
任何人都知道确切的网址重写规则是什么?
谢谢
答案 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网站