如何将传入流量重定向到另一个站点而不是404页面

时间:2015-05-11 18:32:05

标签: asp.net redirect iis-7.5

我试图配置我们的IIS服务器以将用户重定向到另一个站点而不是404页面。

首先,问题的标题可能不正确,但我不知道如何要求它。

这是这笔交易:

  1. 我们的IIS服务器中有很多文档,这些文件都是 我们用户的报告可能是.pdf,.doc,.xls文件等。
  2. 目前我们所有的文件都存储在一个2TB硬盘中,但它已经到了 我们正在考虑安装另一个将存储的硬盘 我们所有的当前文件(让我们称之为硬盘历史记录)
  3. 我们发送了许多使用网址下载硬编码文件的应用程序和电子邮件(例如www.somesite.com/documents/file.pdf),即使发送了链接,我们也需要提供文件一封电子邮件针对的是" old" url,但是对于新硬盘,我们将创建一个名为" historydocuments"的虚拟目录。所以前面例子的正确网址是www.somesite.com/historydocuments/file.pdf
  4. 我正在尝试执行以下操作:创建一个url重写规则,该规则将尝试检查该文件是否存在于" normal" url(文件)如果那里没有文件,而不是发送404页面,将尝试跳转到 新的虚拟目录(historydocuments)并尝试给用户 文件。
  5. 所有这一切都在IIS 7.5中完成,我不知道URL Rewrite是否是正确的工具,我还没有在SO或者互联网上找到任何东西,所以我不知道。我找到了一个IIS Guru来教我实现这个目标的方法。

    这是试图说明问题的图片: enter image description here

    这里是URL Rewrite的web.config部分

    <rule name="CDocuments Rewrite" stopProcessing="true">
        <match url=".?" />
        <!--<match url="/cdocuments/(.*)?" />-->
        <conditions trackAllCaptures="true">
            <add input="{HTTP_HOST}" pattern="/cdocuments/(.*)?" />
            <add input="{QUERY_STRING}" pattern="/cdocuments/(.*)?" />
        </conditions>
        <action type="Rewrite" url="http://192.168.172.226/filecheck/default.aspx?file={C:2}" appendQueryString="true" logRewrittenUrl="true" />
    </rule>
    

    非常感谢你们。

1 个答案:

答案 0 :(得分:0)

我不认为IIS URLRewrite可以做到这一点。但您可以在&#34;文档&#34;上自定义您的404页面。目录,您可以在其中检查丢失的文件是否实际位于旧目录中,如果为true,则将用户重定向到新URL。您可能会在日志中看到许多404错误,这不太好。

为什么不在新硬盘上为新文档创建新目录,并保留旧文件的旧名称。旧链接仍然有效,您只需在新网址中发送链接即可。您实际上可以创建一些有意义的目录来管理您的文档,例如www.yourdomain / docs / 2015 / docufile.pdf。下一次升级将更容易。

或使用IIS重写

www.yourdomain.com/documents/fileno.pdf

www.yourdomain.com/docs/docfind.asp?fname=fileno.pdf

并编程docfind.asp以找到fileno.pdf并将用户重定向到真实文档URL

www.yourdomain.com/historydocuments/fileno.pdf 

www.youdomain.com/newdocuments/fileno.pdf

asp或perl脚本可以快速轻松地完成。

规则应如下所示:

            <rule name="cddocuments">
                <match url="cddocuments/(.*)" />
                <action type="Rewrite" url="http://192.168.172.226/filecheck/default.aspx?file={R:1}" />
            </rule>

确保重命名旧文档目录。