find_htaccess.cgi

来自「Unix下基于Web的管理工具」· CGI 代码 · 共 62 行

CGI
62
字号
#!/usr/local/bin/perl# find_htaccess.cgi# Finds all per-directory options files under the all the document rootsrequire './apache-lib.pl';&ReadParse();$access{'global'} || &error($text{'htaccess_ecannot'});$in{'from'}=1 if ($access{'dir'} ne '/');if ($in{'from'} == 1 && !(-d $in{'dir'})) {	&error(&text('htaccess_edir', $in{'dir'}));	}&read_file("$module_config_directory/site", \%site);foreach $f (split(/\s+/, $site{'htaccess'})) {	if (-r $f) { push(@rv, $f); }	}# Find the default document root and access file$conf = &get_config();$def_htaccess = &find_directive("AccessFileName", $conf);if (!$def_htaccess) { $def_htaccess = ".htaccess"; }$def_root = &find_directive("DocumentRoot", $conf);if (!$def_root) { $def_root = "/"; }# find virtual server doc roots and access filespush(@dirs, $def_root); push(@files, $def_htaccess);foreach $v (&find_directive_struct("VirtualHost", $conf)) {	$root = &find_directive("DocumentRoot", $v->{'members'});	push(@dirs, $root ? $root : $def_root);	$htaccess = &find_directive("AccessFileName", $v->{'members'});	push(@files, $htaccess ? $htaccess : $def_htaccess);	}if ($in{'from'} == 0) {	# search under all directories	for($i=0; $i<@dirs; $i++) {		open(FIND, "find $dirs[$i] -name $files[$i] -print |");		while(<FIND>) {			s/\r|\n//g;			push(@rv, $_);			}		close(FIND);		}	}else {	# search under the given directory only	foreach $f (&unique(@files)) { push(@args, "-name $f"); }	$args = join(' -o ', @args);	open(FIND, "find $in{'dir'} $args -print |");	while(<FIND>) {		s/\r|\n//g;		push(@rv, $_);		}	close(FIND);	}# save results$site{'htaccess'} = join(' ', &unique(@rv));&write_file("$module_config_directory/site", \%site);&redirect("htaccess.cgi");

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?