|
Packit |
667938 |
#!/usr/bin/perl
|
|
Packit |
667938 |
|
|
Packit |
667938 |
use strict;
|
|
Packit |
667938 |
use URI;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
my $dirc = 'none';
|
|
Packit |
667938 |
my $HtmlBase = "/usr/lib/apache/htdocs";
|
|
Packit |
667938 |
my ($rq, $rf, $prevDir, $nextDir, $newLocation);
|
|
Packit |
667938 |
my ($basedir, $subdir, $file, $TheDir, $host);
|
|
Packit |
667938 |
my (@dirs, @pathsegs);
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$rq = URI->new($ENV{"REQUEST_URI"});
|
|
Packit |
667938 |
$dirc = $rq->query;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$rf = URI->new($ENV{"HTTP_REFERER"});
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$host = $rf->host;
|
|
Packit |
667938 |
$subdir = $rf->path;
|
|
Packit |
667938 |
@pathsegs = $rf->path_segments;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
$file = $pathsegs[-1];
|
|
Packit |
667938 |
$subdir = $pathsegs[-2];
|
|
Packit |
667938 |
$basedir = join('/', @pathsegs[0..$#pathsegs-2]);
|
|
Packit |
667938 |
|
|
Packit |
667938 |
opendir(DIRHNDL, "$HtmlBase/$basedir");
|
|
Packit |
667938 |
|
|
Packit |
667938 |
while($TheDir = readdir(DIRHNDL)) {
|
|
Packit |
667938 |
if($TheDir =~ /^\w/ && -d "$HtmlBase/$basedir/$TheDir") {
|
|
Packit |
667938 |
push @dirs, $TheDir;
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
@dirs = sort @dirs;
|
|
Packit |
667938 |
|
|
Packit |
667938 |
for(my $i = 0; $i <= $#dirs; $i++) {
|
|
Packit |
667938 |
if ($dirs[$i] eq $subdir) {
|
|
Packit |
667938 |
if($i > 0) { $prevDir = $dirs[$i - 1] }
|
|
Packit |
667938 |
else { $prevDir = $subdir }
|
|
Packit |
667938 |
|
|
Packit |
667938 |
if($i < $#dirs) { $nextDir = $dirs[$i + 1] }
|
|
Packit |
667938 |
else { $nextDir = $subdir }
|
|
Packit |
667938 |
|
|
Packit |
667938 |
last;
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
if($dirc eq 'prev') {
|
|
Packit |
667938 |
if(-f "$HtmlBase/$basedir/$prevDir/$file") {
|
|
Packit |
667938 |
$newLocation = "http://$host$basedir/$prevDir/$file";
|
|
Packit |
667938 |
} else {
|
|
Packit |
667938 |
$newLocation = "http://$host$basedir/$subdir/$file";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
} elsif ($dirc eq 'next') {
|
|
Packit |
667938 |
if(-f "$HtmlBase/$basedir/$nextDir/$file") {
|
|
Packit |
667938 |
$newLocation = "http://$host$basedir/$nextDir/$file";
|
|
Packit |
667938 |
} else {
|
|
Packit |
667938 |
$newLocation = "http://$host$basedir/$subdir/$file";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
} elsif ($dirc eq 'index') {
|
|
Packit |
667938 |
if($file eq 'index.html') {
|
|
Packit |
667938 |
$newLocation = "http://$host$basedir/index.html";
|
|
Packit |
667938 |
} else {
|
|
Packit |
667938 |
$newLocation = "http://$host$basedir/$subdir/index.html";
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
} else {
|
|
Packit |
667938 |
$newLocation = $ENV{"HTTP_REFERER"};
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
print "Location:$newLocation\n\n";
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|