mrtgnav
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
源码类别:

SNMP编程

开发平台:

C/C++

  1. #!/usr/bin/perl
  2. use strict;
  3. use URI;
  4. my $dirc = 'none';
  5. my $HtmlBase = "/usr/lib/apache/htdocs";
  6. my ($rq, $rf, $prevDir, $nextDir, $newLocation);
  7. my ($basedir, $subdir, $file, $TheDir, $host);
  8. my (@dirs, @pathsegs);
  9. $rq = URI->new($ENV{"REQUEST_URI"});
  10. $dirc = $rq->query;
  11. $rf = URI->new($ENV{"HTTP_REFERER"});
  12. $host = $rf->host;
  13. $subdir = $rf->path;
  14. @pathsegs = $rf->path_segments;
  15. $file = $pathsegs[-1];
  16. $subdir = $pathsegs[-2];
  17. $basedir = join('/', @pathsegs[0..$#pathsegs-2]);
  18. opendir(DIRHNDL, "$HtmlBase/$basedir");
  19. while($TheDir = readdir(DIRHNDL)) {
  20.   if($TheDir =~ /^w/ && -d "$HtmlBase/$basedir/$TheDir") {
  21.     push @dirs, $TheDir;
  22.   }
  23. }
  24. @dirs = sort @dirs;
  25. for(my $i = 0; $i <= $#dirs; $i++) {
  26.   if ($dirs[$i] eq $subdir) {
  27.     if($i > 0) { $prevDir = $dirs[$i - 1] }
  28.     else       { $prevDir = $subdir }
  29.     if($i < $#dirs) { $nextDir = $dirs[$i + 1] }
  30.     else            { $nextDir = $subdir }
  31.     last;
  32.   }
  33. }
  34. if($dirc eq 'prev') {
  35.   if(-f "$HtmlBase/$basedir/$prevDir/$file") {
  36.     $newLocation = "http://$host$basedir/$prevDir/$file";
  37.   } else {
  38.     $newLocation = "http://$host$basedir/$subdir/$file";
  39.   }
  40. } elsif ($dirc eq 'next') {
  41.   if(-f "$HtmlBase/$basedir/$nextDir/$file") {
  42.     $newLocation = "http://$host$basedir/$nextDir/$file";
  43.   } else {
  44.     $newLocation = "http://$host$basedir/$subdir/$file";
  45.   }
  46. } elsif ($dirc eq 'index') {
  47.   if($file eq 'index.html') { 
  48.     $newLocation = "http://$host$basedir/index.html";
  49.   } else {
  50.     $newLocation = "http://$host$basedir/$subdir/index.html";
  51.   }
  52. } else {
  53.   $newLocation = $ENV{"HTTP_REFERER"};
  54. }
  55. print "Location:$newLocationnn";