--- loncom/auth/lonacc.pm 2014/05/17 21:43:55 1.156 +++ loncom/auth/lonacc.pm 2014/06/17 23:22:10 1.157 @@ -1,7 +1,7 @@ # The LearningOnline Network # Cookie Based Access Handler # -# $Id: lonacc.pm,v 1.156 2014/05/17 21:43:55 raeburn Exp $ +# $Id: lonacc.pm,v 1.157 2014/06/17 23:22:10 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -473,7 +473,7 @@ sub handler { } $env{'request.filename'} = $r->filename; $env{'request.noversionuri'} = &Apache::lonnet::deversion($requrl); - my $suppext; + my ($suppext,$checkabsolute); if ($requrl =~ m{^/adm/wrapper/ext/}) { my $query = $r->args; if ($query) { @@ -494,6 +494,9 @@ sub handler { $env{'request.external.querystring'} = $preserved; } } + if ($env{'request.course.id'}) { + $checkabsolute = 1; + } } elsif ($env{'request.course.id'} && (($requrl =~ m{^/adm/$match_domain/$match_username/aboutme$}) || ($requrl =~ m{^/public/$cdom/$cnum/syllabus$}))) { @@ -508,6 +511,20 @@ sub handler { } } } + if ($requrl =~ m{^/public/$cdom/$cnum/syllabus$}) { + $checkabsolute = 1; + } + } + if ($checkabsolute) { + my $hostname = $r->hostname(); + my $lonhost = &Apache::lonnet::host_from_dns($hostname); + if ($lonhost) { + my $actual = &Apache::lonnet::absolute_url($hostname); + my $expected = $Apache::lonnet::protocol{$lonhost}.'://'.$hostname; + unless ($actual eq $expected) { + $env{'request.use_absolute'} = $expected; + } + } } # -------------------------------------------------------- Load POST parameters