在 IIS6 中,您可以进入 IIS 管理器并将文件的属性设置为永久重定向,还有其他选项卡可以设置安全性、标头等。请参阅下面的屏幕截图。
有没有类似的方法可以做到这一点,但是从命令行我可以一次对一千个文件执行此操作?
背景:我们正在将内容从这个旧系统中迁移出来,但有几个外部系统直接链接到它。这些链接将在一段时间后过期,但更新这些外部系统将是一项比仅仅将文件逐个重定向到新系统(如果需要,甚至可以手动设置)更大的任务。
答案1
发帖后立即找到了答案(这似乎经常发生)。
在 IIS 中,您可以在文件级别配置重定向。在 IIS 管理器中,右键单击文件,单击“属性”,然后选择“重定向到 URL”即可完成此操作。但是,如果您需要对许多文件执行此操作,则这种方法不切实际,因此当然可以通过命令行或代码完成此操作。使用 adsutil.vbs,您可以使用以下命令行在单个文件上设置重定向:
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs CREATE W3SVC/1/ROOT/vdir/oldFile.htm IIsWebFile
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/1/ROOT/vdir/oldFile.htm/HttpRedirect "http://www.gafvert.info"
在上面的例子中,1 是网站 ID,vdir 是虚拟目录,oldFile.htm 是虚拟目录中的文件。
现在我已经测试过了,现在修改我的答案
在我的 Server 2003/IIS 6 框中,我无法使用那些精确的命令,而必须像这样执行来创建虚拟文件,然后分配 KeyType/Properties。
SET FILE=/W3SVC/1/ROOT/test/redirection/File Path.pdf
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs CREATE "%FILE%"
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs SET "%FILE%/KeyType" "IIsWebFile"
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs SET "%FILE%/HttpRedirect" "http://www.google.com, EXACT_DESTINATION, PERMANENT"
您还可以从此界面设置内容过期、自定义标题等。