目的是让一个文件夹(例如“upload”)在自动化过程中填充子文件夹。现在,每个子文件夹都应该可浏览(即目录浏览开启),但父文件夹(“upload”)不能浏览。如何做到这一点?
有没有办法在网络服务器中设置它?或者我需要一个脚本来将正确的 .htaccess 文件放在文件夹中?
谢谢。
答案1
通常,您只需在父目录中打开“目录浏览”,并允许其继承到子目录。但是,由于您不想要这种行为,因此您需要修改每个子目录的 IIS 元数据库(IIS 保存其配置的配置数据库)。
在 IIS 6 环境中(Windows 2003),我会使用 Microsoft 提供的“adsutil.vbs”脚本(默认位于 %SystemDrive%\inetpub\adminscripts 中)编写一个脚本,为每个子目录创建适当的元数据库条目。例如:
@echo off
SET PARENT_DIR=C:\path\to\parent\directory
SET ADSUTIL=cscript C:\inetpub\adminscripts\adsutil.vbs
SET METABASE_PATH=W3SVC/####/ROOT/path/to/parent/directory
for /f "usebackq delims=" %%i in (`dir /a /b /ad %PARENT_DIR%\*`) do call :do_directory "%%i"
goto end
:do_directory
%ADSUTIL% ENUM "%METABASE_PATH%/%~1" | find "IIsWebDirectory"
if errorlevel 1 goto create_directory
goto end
:create_directory
%ADSUTIL% CREATE "%METABASE_PATH%/%~1" "IIsWebDirectory"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseFlags" "3221225534"
%ADSUTIL% SET "%METABASE_PATH%/%~1/EnableDirBrowsing" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowDate" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowTime" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowSize" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowExtension" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/DirBrowseShowLongDate" "True"
%ADSUTIL% SET "%METABASE_PATH%/%~1/EnableDefaultDoc" "True"
:end
将 #### 替换为站点编号和相应目录的路径。