mrtgnav
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
- #!/usr/bin/perl
- use strict;
- use URI;
- my $dirc = 'none';
- my $HtmlBase = "/usr/lib/apache/htdocs";
- my ($rq, $rf, $prevDir, $nextDir, $newLocation);
- my ($basedir, $subdir, $file, $TheDir, $host);
- my (@dirs, @pathsegs);
- $rq = URI->new($ENV{"REQUEST_URI"});
- $dirc = $rq->query;
- $rf = URI->new($ENV{"HTTP_REFERER"});
- $host = $rf->host;
- $subdir = $rf->path;
- @pathsegs = $rf->path_segments;
- $file = $pathsegs[-1];
- $subdir = $pathsegs[-2];
- $basedir = join('/', @pathsegs[0..$#pathsegs-2]);
- opendir(DIRHNDL, "$HtmlBase/$basedir");
- while($TheDir = readdir(DIRHNDL)) {
- if($TheDir =~ /^w/ && -d "$HtmlBase/$basedir/$TheDir") {
- push @dirs, $TheDir;
- }
- }
- @dirs = sort @dirs;
- for(my $i = 0; $i <= $#dirs; $i++) {
- if ($dirs[$i] eq $subdir) {
- if($i > 0) { $prevDir = $dirs[$i - 1] }
- else { $prevDir = $subdir }
- if($i < $#dirs) { $nextDir = $dirs[$i + 1] }
- else { $nextDir = $subdir }
- last;
- }
- }
- if($dirc eq 'prev') {
- if(-f "$HtmlBase/$basedir/$prevDir/$file") {
- $newLocation = "http://$host$basedir/$prevDir/$file";
- } else {
- $newLocation = "http://$host$basedir/$subdir/$file";
- }
- } elsif ($dirc eq 'next') {
- if(-f "$HtmlBase/$basedir/$nextDir/$file") {
- $newLocation = "http://$host$basedir/$nextDir/$file";
- } else {
- $newLocation = "http://$host$basedir/$subdir/$file";
- }
- } elsif ($dirc eq 'index') {
- if($file eq 'index.html') {
- $newLocation = "http://$host$basedir/index.html";
- } else {
- $newLocation = "http://$host$basedir/$subdir/index.html";
- }
- } else {
- $newLocation = $ENV{"HTTP_REFERER"};
- }
- print "Location:$newLocationnn";