--- loncom/interface/lonsyllabus.pm 2020/01/14 00:57:54 1.147 +++ loncom/interface/lonsyllabus.pm 2020/01/20 16:27:54 1.148 @@ -1,7 +1,7 @@ # The LearningOnline Network # Syllabus # -# $Id: lonsyllabus.pm,v 1.147 2020/01/14 00:57:54 raeburn Exp $ +# $Id: lonsyllabus.pm,v 1.148 2020/01/20 16:27:54 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -185,6 +185,13 @@ sub handler { } } elsif ($external=~/\w/) { unless ($allowed && $forceedit) { + if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public') && + ($ENV{'SERVER_PORT'} == 443) && ($external =~ m{^http://}) && !($env{'form.usehttp'})) { + unless (&Apache::lonnet::uses_sts()) { + &redirect_to_http($r); + return OK; + } + } if ($target eq 'tex') { $r->print(&Apache::lonprintout::print_latex_header($env{'form.latex_type'}). ' \strut \\\\ \textbf{'.&mt('Syllabus').'} \strut \\\\ '.$external.' '. @@ -309,14 +316,7 @@ sub handler { my $hostname = &Apache::lonnet::hostname($homeserver); my $protocol = $Apache::lonnet::protocol{$homeserver}; $protocol = 'http' if ($protocol ne 'https'); - my $link = $r->uri; - if (($protocol eq 'https') && ($external =~ m{^http://})) { - unless (&Apache::lonnet::uses_sts()) { - $link .= '?usehttp=1'; - $protocol = 'http'; - } - } - $link = $protocol.'://'.$hostname.$link; + my $link = $protocol.'://'.$hostname.$r->uri; $r->print('
' .'' .'' @@ -1721,5 +1721,17 @@ sub editbutton_js { ENDJS } +sub redirect_to_http { + my ($r) = @_; + &Apache::loncommon::content_type($r,'text/html'); + &Apache::loncommon::no_cache($r); + $r->send_http_header; + my $url = 'http://'.$r->hostname().$r->uri().'?usehttp=1'; + $r->print(&Apache::loncommon::start_page(undef,undef, + {'redirect' => [0,$url],}). + &Apache::loncommon::end_page()); + return; +} + 1; __END__