在IIS 6.0中,有一种简单的方法可以将请求重定向到另一个文件夹,同时保留其余路径。
e.g。
如果我已移动内容:
mysite.org.uk/stuff
到
stuff.mysite.org.uk /
我可以自动重定向特定页面的请求,例如
mysite.org.uk/stuff/countrybriefing/tanzania/travel.html
到
stuff.mysite.org.uk/countrybriefing/tanzania/travel.html
我知道.htaccess可以在Apache中做这样的事情,在IIS中有没有相同的东西?
答案 0 :(得分:35)
按以下方式格式化重定向网址:
stuff.mysite.org.uk$S$Q
$S
会说必须将任何路径应用于新网址。
$Q
表示必须将任何参数变量传递给新网址。
在IIS 7.0中,您必须启用选项Redirect to exact destination
。
我相信在IIS 6.0中也必须有这样的选项。
答案 1 :(得分:31)
当浏览器在您的网站上请求页面或程序时,Web服务器会找到由URL标识的页面并将其返回给浏览器。当您在网站上移动页面时,您无法始终更正引用该页面旧URL的所有链接。要确保浏览器可以在新URL中找到该页面,您可以指示Web服务器将浏览器重定向到新URL。
您可以将一个目录中的文件请求重定向到另一个目录,另一个Web站点或另一个目录中的另一个文件。当浏览器以原始URL请求文件时,Web服务器会指示浏览器使用新URL请求页面
重要
您必须是本地计算机上Administrators组的成员才能执行以下过程。作为安全性最佳操作,请使用不在Administrators组中的帐户登录计算机,然后使用runas命令以管理员身份运行IIS管理器。在命令提示符处,键入runas / user:Administrative_AccountName“mmc%systemroot%\ system32 \ inetsrv \ iis.msc”。
在IIS管理器中,展开本地计算机,右键单击要重定向的网站或目录,然后单击“属性”。
单击主目录,虚拟目录或目录选项卡。
在“此来源的内容应来自”下,单击“重定向到URL”。
在“重定向到”框中,键入目标目录或网站的URL。例如,要将Catalog目录中的所有文件请求重定向到NewCatalog目录,请键入/ NewCatalog。
在IIS管理器中,展开本地计算机,右键单击要重定向的网站或目录,然后单击“属性”。
单击主目录,虚拟目录或目录选项卡。
在“此来源的内容应来自”下,单击“重定向到URL”。
在“重定向到”框中,键入目标文件的URL。
选中上面输入的确切网址复选框,以防止Web服务器将原始文件名附加到目标网址。
您可以在目标网址中使用通配符和重定向变量来精确控制原始网址转换为目标网址的方式。
您还可以使用重定向方法将特定目录中文件的所有请求重定向到程序。通常,您应该将原始URL中的任何参数传递给程序,您可以使用重定向变量来执行此操作。
在IIS管理器中,展开本地计算机,右键单击要重定向的网站或目录,然后单击“属性”。
单击主目录,虚拟目录或目录选项卡。
在“此来源的内容应来自”下,单击“重定向到URL”。
在“重定向到”框中,键入程序的URL,包括将参数传递给程序所需的任何重定向变量。例如,要将Scripts目录中脚本的所有请求重定向到记录请求的URL和使用URL传递的任何参数的日志记录程序,请键入/Scripts/Logger.exe?URL=$V+PARAMS=$P。 $ V和$ P是重定向变量。
选中上面输入的确切网址复选框,以防止Web服务器将原始文件名附加到目标网址。
答案 2 :(得分:4)
如果您有大量的重定向要创建,那么在这些位置上拥有大量虚拟目录是一个难以维护的噩梦。您可以尝试使用ISAPI重定向IIS扩展。然后你所有的重新指导都在一个地方进行管理。
http://www.isapirewrite.com/docs/
它还允许您根据注册表达式等匹配模式。我已经使用了我必须重新指导100页的页面并且节省了大量时间。
答案 3 :(得分:1)
以下是ISAPI_Rewrite 3的配置:
RewriteBase /
RewriteCond%{HTTP_HOST} ^ mysite.org.uk $ [NC]
RewriteRule ^ stuff /(.+)$ http://stuff.mysite.org.uk/$1 [NC,R = 301,L]