如何在IIS中redirectURLpath?

在IIS 6.0中,是否有一种简单的方法可以将请求redirect到另一个文件夹,同时保留path的其余部分。

例如

如果我已经从以下内容中移除内容:
mysite.org.uk/stuff

stuff.mysite.org.uk/

我是否可以自动redirect特定页面的请求
mysite.org.uk/stuff/countrybriefing/tanzania/travel.html

stuff.mysite.org.uk/countrybriefing/tanzania/travel.html

我知道.htaccess可以在Apache中做这样的事情,有没有在IIS中的相当于?

采取从微软Technet 。

在IIS 6.0中redirect网站(IIS 6.0)

当浏览器请求Web站点上的页面或程序时,Web服务器将查找由URL标识的页面并将其返回给浏览器。 在网站上移动页面时,不能始终更正引用该页面的旧URL的所有链接。 为了确保浏览器能够在新的URL上find页面,可以指示Web服务器将浏览器redirect到新的URL。

您可以将一个目录中的文件的请求redirect到另一个目录,另一个Web站点或另一个目录中的另一个文件。 当浏览器以原始URL请求文件时,Web服务器指示浏览器使用新的URL请求页面。

重要

您必须是本地计算机上Administrators组的成员才能执行以下过程或过程。 作为安全最佳实践,请使用不在pipe理员组中的帐户login到您的计算机,然后使用runas命令以pipe理员身份运行IISpipe理器。 在命令提示符处,键入runas / user:Administrative_AccountName“mmc%systemroot%\ system32 \ inetsrv \ iis.msc”。

程序

将请求redirect到另一个Web站点或目录

  1. 在IISpipe理器中,展开本地计算机,右键单击要redirect的网站或目录,然后单击“属性”。

  2. 单击主目录,虚拟目录或目录选项卡。

  3. 在此源的内容应来自,请单击redirect到一个URL。

  4. 在“redirect到”框中,键入目标目录或网站的URL。 例如,要将目录目录中的所有文件请求redirect到NewCatalog目录,请键入/ NewCatalog。

将所有请求redirect到单个文件

  1. 在IISpipe理器中,展开本地计算机,右键单击要redirect的网站或目录,然后单击“属性”。

  2. 单击主目录,虚拟目录或目录选项卡。

  3. 在此源的内容应来自,请单击redirect到一个URL。

  4. 在“redirect到”框中,键入目标文件的URL。

  5. 选中上面input的确切URLcheckbox,以防止Web服务器将原始文件名追加到目标URL。

    您可以在目标url中使用通配符和redirectvariables来精确控制如何将原始url转换为目标url。

    您也可以使用redirect方法将特定目录中的所有文件请求redirect到程序。 通常,您应该将原始URL中的任何parameter passing给程序,您可以使用redirectvariables来完成这些操作。

    将请求redirect到一个程序

  6. 在IISpipe理器中,展开本地计算机,右键单击要redirect的网站或目录,然后单击“属性”。

  7. 单击主目录,虚拟目录或目录选项卡。

  8. 在此源的内容应来自,请单击redirect到一个URL。

    在“redirect到”框中,键入程序的URL,包括将parameter passing给程序所需的任何redirectvariables。 例如,要将脚本目录中的所有脚本请求redirect到logging所请求的URL和使用该URL传递的所有参数的日志logging程序,请键入/Scripts/Logger.exe?URL=$V+PARAMS=$P。 $ V和$ P是redirectvariables。

  9. 选中上面input的确切URLcheckbox,以防止Web服务器将原始文件名追加到目标URL。

按以下方式格式化redirecturl:

stuff.mysite.org.uk$S$Q

$S会说任何path必须应用到新的URL。 $Q表示任何参数variables都必须传递给新的URL。

在IIS 7.0中,您必须启用选项Redirect to exact destination 。 我相信在IIS 6.0中也必须有这样的选项。

如果你有负载重新创build,有虚拟目录加载的地方是一个噩梦来维护。 你可以尝试使用ISAPIredirect一个IIS扩展。 然后你重新指挥的所有东西都在一个地方pipe理。

http://www.isapirewrite.com/docs/

它也允许你匹配基于reg exexpression式的模式等。我已经使用了我不得不重新指向100页的页面,并节省了大量的时间。

这里是ISAPI_Rewrite 3的configuration:

RewriteBase /

RewriteCond%{HTTP_HOST} ^ mysite.org.uk $ [NC]

RewriteRule ^ stuff /(.+)$ http://stuff.mysite.org.uk/$1 [NC,R = 301,L]