Windows-Server-2003
以程式方式設置 IIS6 文件重定向
在 IIS6 中,您可以進入 IIS 管理器並將文件的屬性設置為永久重定向,還有其他選項卡可以設置安全性、標題等。請參見下面的螢幕截圖。
有沒有類似的方法可以做到這一點,但是從命令行我可以一次對一千個文件執行此操作?
背景:我們正在從這個遺留系統遷移內容,但有幾個外部系統直接連結到它。這些連結將在一段時間後過期,但更新這些外部系統將是一項更大的任務,而不是僅僅將文件一個文件地重定向到新系統(如果需要,甚至可以手動)。
發布後立即找到答案(這似乎經常發生)。
在 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"
您還可以從此界面設置內容過期、自定義標頭等。