File:  [LON-CAPA] / loncom / loncapa_apache.conf
Revision 1.286: download - view: text, annotated - select for diffs
Mon Jan 8 02:23:45 2024 UTC (11 months, 2 weeks ago) by raeburn
Branches: MAIN
CVS tags: version_2_12_X, HEAD
- contentopen, contentclose and acc parameters can apply to .tex files from
  /res/ imported into a course.

##
## loncapa_apache.conf -- Apache HTTP LON-CAPA configuration file
##

# $Id: loncapa_apache.conf,v 1.286 2024/01/08 02:23:45 raeburn Exp $

#
# LON-CAPA Section (extensions to httpd.conf daemon configuration)
#
# ================================================================ DocumentRoot

DocumentRoot "/home/httpd/html"

# ======================================================================== User

User www
Group www

# ======================================================= Shared Object Modules

<IfModule !perl_module>
    LoadModule perl_module       modules/libperl.so
</IfModule>
<IfDefine !MODPERL2>
AddModule mod_perl.c
</IfDefine>

<IfDefine MODPERL2>
PerlSetVar	MODPERL2	1
</IfDefine>
# =============================================================== Miscellaneous

ServerAdmin consortium@loncapa.org
ExtendedStatus On
#
# LON-CAPA Section (extensions to srm.conf name space servicing)
#
# ===================================================================== Aliases

Alias /zipspool/ /home/httpd/zipspool/
Alias /prtspool/ /home/httpd/prtspool/
Alias /captchaspool/ /home/httpd/captchaspool/
Alias /webdav/ /home/httpd/html/priv/
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
<IfModule mod_dav_fs.c>
    DAVLockDB /home/httpd/webdav/DAVLock
</IfModule>

# ================================================================= Directories

# ------------------------------------------------------------- Access Handlers

PerlTransHandler	Apache::lontrans
PerlCleanupHandler	Apache::lonacc::cleanup

PerlAuthenHandler Apache::checkauthen
PerlSetVar lonOtherAuthen no

<IfModule mod_shib>
    PerlAuthenHandler Apache::lonshibauth
    PerlSetVar lonOtherAuthen yes
    PerlSetVar lonOtherAuthenType Shibboleth
</IfModule>

#PerlWarn On
<LocationMatch "^/+res/adm/pages/[^/]+\.(gif|png)$">
PerlAuthzHandler	'sub { return OK }' 
</LocationMatch>

# Send proper expires header to avoid unnecessary HTTP request for static content
<LocationMatch "^(/adm/lonIcons|/adm/jQuery|/res/adm/pages|/ckeditor|/adm/jpicker|/adm/countdown|/adm/spellchecker|/adm/nicescroll|/adm/MathJax|/adm/daxe)">
        ExpiresActive On
        ExpiresDefault "access plus 12 hours"
        Header set Cache-Control "public, no-transform"
</LocationMatch>

<LocationMatch "^/+res.*">

AuthType LONCAPA
Require valid-user

PerlAccessHandler      Apache::publiccheck
PerlAuthzHandler       Apache::lonacc
PerlHeaderParserHandler Apache::lonrep
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>


<LocationMatch "/.*">
</LocationMatch>


<LocationMatch "^/+enc.*">
SetHandler perl-script
PerlHandler       Apache::lonencurl
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<Location /adm/portfolio>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::portfolio
</Location>

<Location /adm/coursegrp_portfolio>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::portfolio
</Location>

<Location /adm/pdfupload>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler             Apache::lonpdfupload
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<LocationMatch "^/+userfiles.*">
Options +FollowSymLinks -Includes
PerlAccessHandler       Apache::lontokacc
PerlCleanupHandler	Apache::lontokacc::removefile
PerlCleanupHandler	Apache::lonacc::cleanup
</LocationMatch>

<LocationMatch "^/+uploaded.*">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
PerlHandler 		Apache::londatecheck
PerlHandler  		Apache::lonipcheck
PerlHeaderParserHandler Apache::lonuploadrep
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+uploaded/.+/.+/(portfolio|feedback|docs|groups|supplemental)/.+">
   Options +FollowSymLinks -Includes
</LocationMatch>

<LocationMatch "^/+editupload.*">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+uploaded/.*/.*/internal/.*">
PerlAuthenHandler	Apache::lonuploadedacc
PerlAuthzHandler	Apache::lonuploadedacc::skip_phase
PerlAccessHandler	Apache::lonuploadedacc::skip_phase
</LocationMatch>

<LocationMatch "^/+uploaded/.*/.*/portfolio/.*">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
</LocationMatch>

<LocationMatch "^/+uploaded/.*/.*/groups/.*/portfolio/.*">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
</LocationMatch>

<LocationMatch "^/+uploaded/.*\.page$">
SetHandler perl-script
PerlHandler Apache::lonpage
</LocationMatch>

<LocationMatch "^/+uploaded/.*\.sequence$">
SetHandler perl-script
PerlHandler Apache::lonsequence
</LocationMatch>

<LocationMatch "^/+uploaded/.*/.*/docs/.*\.tex$">
SetHandler perl-script
PerlHandler Apache::londatecheck
PerlHandler Apache::lonipcheck
PerlHandler Apache::lontex
</LocationMatch>

<LocationMatch "^/+public/.*/syllabus$">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonsyllabus
ErrorDocument     404 /adm/notfound.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+(public|adm)/.*(\.rss|_rss\.html)$">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonrss
ErrorDocument     404 /adm/notfound.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/aboutme$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonaboutme
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/aboutme/portfolio$">
PerlAccessHandler       Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonaboutme
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/smppg$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::londatecheck
PerlHandler		Apache::lonipcheck
PerlHandler             Apache::lonsimplepage
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/bulletinboard$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::londatecheck
PerlHandler		Apache::lonipcheck
PerlHandler             Apache::lonbulletin
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "\.problem/smpedit$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonsimpleproblemedit
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/ext\.tool$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler        Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonslotcheck
PerlHandler             Apache::londatecheck
PerlHandler             Apache::lonipcheck
PerlHandler             Apache::lonexttool
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/placement$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler        Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonplacementtest
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<Location /adm/exturlcheck>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler  Apache::lonacc
SetHandler        perl-script
PerlHandler       Apache::lonexturlcheck
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</Location>

<LocationMatch "^/+priv/.*">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::loncacc
SetHandler        perl-script
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+webdav/[\w\-.]+/\w[\w.\-\@]+/">
  <IfModule mod_dav.c>
    <IfModule mod_ssl.c>
      AuthType Basic
      AuthName "LONCAPA username,domain"
      Require valid-user
      SSLRequireSSL
      PerlAuthenHandler Apache::lonwebdavauth
      PerlAuthzHandler Apache::lonwebdavacc
      Dav On
      DirectoryIndex index.missing
      Options Indexes FollowSymLinks
      ErrorDocument     403 /adm/nowebdav.html
      ErrorDocument     404 /adm/notfound.html
      ErrorDocument     406 /adm/unauthorized
      ErrorDocument     500 /adm/errorhandler
    </IfModule>
    <IfModule !mod_ssl.c>
      <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule .* http://%{HTTP_HOST}/adm/nowebdav.html [L]
      </IfModule>
    </IfModule>
  </IfModule>
  <IfModule !mod_dav.c>
    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule .* http://%{HTTP_HOST}/adm/nowebdav.html [L]
    </IfModule>
  </IfModule>
</LocationMatch>

<LocationMatch "^/+raw.*">
PerlAccessHandler Apache::lonracc
</LocationMatch>

<LocationMatch "^/adm/helper/.*\.helper$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler  Apache::lonacc
SetHandler        perl-script
PerlHandler       Apache::lonhelper
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "/prtspool">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "/zipspool">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>
# ------------------------------------------------------------------------- RAT

<LocationMatch "^/+priv/.*\.sequence$">
SetHandler perl-script
PerlHandler Apache::lonratedt
</LocationMatch>

<LocationMatch "^/+priv/.*\.page$">
SetHandler perl-script
PerlHandler Apache::lonratedt
</LocationMatch>

<LocationMatch "^/+priv/.*\/ratserver$">
SetHandler perl-script
PerlHandler Apache::lonratsrv
</LocationMatch>

<LocationMatch "^/+priv/.*\/adveditmenu$">
SetHandler perl-script
PerlHandler Apache::lonratmenu
</LocationMatch>

<Location /adm/ratparms>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonratparms
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

# --------------------------------------------- Resource Space Content Handlers

<LocationMatch "^/+res.*/$">
SetHandler perl-script
PerlHandler Apache::lonindexer
PerlCleanupHandler Apache::lonindexer::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
</LocationMatch>

<LocationMatch "^/+res/.*\.tex$">
SetHandler perl-script
PerlHandler Apache::londatecheck
PerlHandler Apache::lonipcheck
PerlHandler Apache::lontex
</LocationMatch>

<LocationMatch "^/+res/.*\.page$">
SetHandler perl-script
PerlHandler Apache::lonpage
</LocationMatch>

<LocationMatch "^/+res/.*\.sequence$">
SetHandler perl-script
PerlHandler Apache::lonsequence
</LocationMatch>

<LocationMatch "^/+(res|priv|public|uploaded|editupload|adm)/.*\.meta$">
PerlAccessHandler      Apache::publiccheck
SetHandler perl-script
PerlHandler Apache::lonmeta
ErrorDocument     413 /adm/overloaded.txt
</LocationMatch>

<LocationMatch "^/adm/bombs/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmeta
</LocationMatch>



<LocationMatch "^/+(res|priv)/.*\.rights$">
SetHandler perl-script
PerlHandler Apache::lonrights
</LocationMatch>

<LocationMatch "^/+(uploaded|res|priv)/.*\.(xml|html|htm|xhtml|xhtm|sty)$">
SetHandler perl-script
PerlHandler Apache::londatecheck
PerlHandler Apache::lonipcheck
PerlHandler Apache::lonxml
</LocationMatch>

<LocationMatch "^/+(res|priv).*\.(task|problem|exam|quiz|assess|survey|form|library)$">
SetHandler perl-script
PerlHandler Apache::lonhomework
</LocationMatch>

<LocationMatch "^/+priv/.*\.(js|css|txt|tex)$">
SetHandler perl-script
PerlHandler Apache::lonxml
</LocationMatch>

<LocationMatch "^/daxepage/priv/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::loncacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/daxeopen/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
</LocationMatch>

<LocationMatch "^/daxeopen/priv/[^/]+/[^/]+/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::loncacc
</LocationMatch>

<LocationMatch "^/daxeopen/(res/|$)">
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/daxeopen/priv/">
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/daxe(page|open)/uploaded/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/daxepage/priv/.*\.(task|problem|exam|quiz|assess|survey|library|xml|html|htm|xhtml|xhtm)$">
SetHandler perl-script
PerlHandler Apache::daxepage
</LocationMatch>

<LocationMatch "^/daxepage/uploaded/[^/]+/[^/]+/(docs|supplemental)/.*html?$">
SetHandler perl-script
PerlHandler Apache::daxepage
</LocationMatch>

<LocationMatch "^/daxeopen/priv/.*\.(task|problem|exam|quiz|assess|survey|library|xml|html|htm|xhtml|xhtm)$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "^/daxeopen/$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "^/daxeopen/(res|priv|uploaded)/(.+/)?$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "^/daxeopen/uploaded/[^/]+/[^/]+/(docs|supplemental)/.*html?$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "(?i)^/daxeopen/priv/.+\.(?!task$|problem$|exam$|quiz$|assess$|survey$|library$|xml$|html$|htm$|xhtml$|xhtm$)[^.]*$">
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule /daxeopen/(.*) /$1
</IfModule>
</LocationMatch>

<LocationMatch "(?i)^/daxeopen/uploaded/.+\.(?!html$|htm$|xhtml$|xhtm$)[^.]*$">
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule /daxeopen/(.*) /$1
</IfModule>
</LocationMatch>

<LocationMatch "(?i)^/daxeopen/(res/.*\.(jpg|jpeg|gif|png|svg))$">
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule /daxeopen/(.*) /$1
</IfModule>
</LocationMatch>

<LocationMatch "^/daxesave$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::daxesave
</LocationMatch>

<Location /adm/coursepub>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncoursepub
ErrorDocument     404 /adm/notfound.html
ErrorDocument     500 /adm/errorhandler
</Location>

<LocationMatch "^/adm/wrapper/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
PerlHandler Apache::londatecheck
PerlHandler Apache::lonipcheck
SetHandler perl-script
PerlHandler Apache::lonwrapper
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/source">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsource
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>


<LocationMatch "^/adm/localize/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonlocalize
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

# -------------------------------------------------------------- Admin Programs

<Location /adm/randomlabel.png>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::randomlylabel
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/imagechoice>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::imagechoice
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/searchcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsearchcourse
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/indexcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonindexcourse
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/statistics>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonstatistics
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/trackstudent>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lontrackstudent
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/roles>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonroles
ErrorDocument     403 /adm/login
ErrorDocument     409 /adm/preferences?action=lockwarning
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/menu>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmainmenu
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/pickresource>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickresource
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/pickauthor>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickauthor
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/pickstudent>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickstudent
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/pickuser>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickuser
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/pickcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickcourse
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/pickcode>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickcode
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/dependencies>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londependencies
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/courseauthor>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncourseauthor
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/courseuser>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncourseuser
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/login>
SetHandler perl-script
PerlHandler Apache::lonlogin
</Location>

<LocationMatch "^/+adm/launch/tiny/[\w.-]+/\w+">
SetHandler perl-script
PerlHandler Apache::ltiauth
</LocationMatch>

<Location /adm/relaunch>
SetHandler perl-script
PerlHandler Apache::lonrelaunch
</Location>

<LocationMatch "^/+adm/lti($|/)">
SetHandler perl-script
PerlHandler Apache::ltiauth
</LocationMatch>

<Location /adm/service/passback>
SetHandler perl-script
PerlHandler Apache::ltipassback
</Location>

<Location /adm/service/roster>
SetHandler perl-script
PerlHandler Apache::ltiroster
</Location>

<LocationMatch "^/adm/service/logout/\w+$">
SetHandler perl-script
PerlHandler Apache::ltilogout
</LocationMatch>

<Location /adm/restrictedaccess>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::restrictedaccess
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/blockedaccess>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::blockedaccess
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/protected>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonprotected
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/logout>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonlogout
ErrorDocument     403 /adm/login
ErrorDocument     409 /adm/preferences?action=lockwarning
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/switchserver>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::switchserver
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/authenticate>
SetHandler perl-script
PerlHandler Apache::lonauth
</Location>

<Location /adm/migrateuser>
SetHandler perl-script
PerlHandler Apache::migrateuser
</Location>

<Location /adm/sso>
  Header set Cache-Control "private,no-store,no-cache,max-age=0"
  <IfModule mod_shib>
    AuthType shibboleth
    ShibUseEnvironment On
    ShibRequestSetting requireSession 1
    ShibRequestSetting redirectToSSL 443
    require valid-user
    PerlAuthzHandler       Apache::lonshibacc
    PerlAuthzHandler       Apache::lonacc
    ErrorDocument     403 /adm/login
    ErrorDocument     500 /adm/errorhandler
  </IfModule>
  <IfModule !mod_shib>
    PerlTypeHandler        Apache::lonnoshib
  </IfModule>
</Location>

<Location /adm/linkexit>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonlinkexit
ErrorDocument     403 /adm/login
ErrorDocument     409 /adm/preferences?action=lockwarning
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/annotations>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::admannotations
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/annotation>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::admannotations
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/spellcheck>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspeller
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/flip>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpageflip
PerlCleanupHandler Apache::lonpageflip::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     406 /adm/roles
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/ambiguous>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonambiguous
PerlCleanupHandler Apache::lonambiguous::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/email>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmsgdisplay
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/notify>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonnotify
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/parmset>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonparmset
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/courseprefs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::courseprefs
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/slotrequest>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::slotrequest
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/wizard>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonwizard
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/grades>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::grades
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/requestcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonrequestcourse
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/createcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncreatecourse
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/modifycourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmodifycourse
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/domainprefs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::domainprefs
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/domainstatus>
PerlAccessHandler       Apache::lonstatusacc
SetHandler perl-script
PerlHandler Apache::domainstatus
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/createuser>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncreateuser
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/publish>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpublisher
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<LocationMatch "^/+priv/.*/$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::loncacc
SetHandler perl-script
PerlHandler Apache::lonpubdir
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<Location /adm/unauthorized>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonunauthorized
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/retrieve>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonretrieve
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/cleanup>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncleanup
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/cfile>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncfile
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/diff>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londiff
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/upload>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonupload
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/imsimport>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::imsimport
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/testbank>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::testbankimport
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/assesscalc>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspreadsheet
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/studentcalc>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspreadsheet
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/classcalc>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspreadsheet
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/dropadd>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londropadd
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/viewclasslist>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonviewclasslist
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/coursegroups>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncoursegroups
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/groupboards>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::groupboards
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/grouproster>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::grouproster
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/whatsnew>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonwhatsnew
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/populate>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpopulate
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/managekeys>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmanagekeys
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/printout>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonprintout
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/feedback>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonfeedback
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/coursedocs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londocs
PerlCleanupHandler Apache::londocs::untiehash
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/supplemental>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londocs
PerlCleanupHandler Apache::londocs::untiehash
PerlCleanupHandler      Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/imsimportdocs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::imsimportdocs
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/extresedit>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonextresedit
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<LocationMatch "^/adm/announcements">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonannounce
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<Location /adm/chat>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonchat
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/chatfetch>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonchatfetch
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/groupchat>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::longroupchat
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/evaluate>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonevaluate
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/preferences>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpreferences
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/viewcoauthors>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler             perl-script
PerlHandler            Apache::lonviewcoauthors
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/communicate>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncommunicate
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/searchcat>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsearchcat
PerlCleanupHandler Apache::lonsearchcat::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/navmaps>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonnavdisplay
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/quickgrades>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonquickgrades
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/groupsort>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler perl-script
PerlHandler Apache::groupsort
PerlCleanupHandler Apache::groupsort::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/wishlist>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonwishlistdisplay
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/setblock>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler             perl-script
PerlHandler            Apache::lonblockingmenu
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/blockingstatus>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler             perl-script
PerlHandler            Apache::lonblockingstatus
</Location>

<Location /adm/accesstimes>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler             perl-script
PerlHandler            Apache::lonaccesstimes
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/errorhandler>
SetHandler perl-script
PerlHandler Apache::lonerrorhandler
</Location>

<LocationMatch "^/adm/help/.*\.hlp$">
AuthType LONCAPA
Require valid-user
PerlAccessHandler      Apache::publiccheck
PerlAuthzHandler	Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonhelp
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/helpmenu">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonhelpmenu
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/support">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsupportreq
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/helpdesk">
SetHandler perl-script
PerlHandler Apache::lonsupportreq
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/css/.*\.css$">
SetHandler perl-script
PerlHandler Apache::loncss
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/coursecatalog">
SetHandler perl-script
PerlHandler Apache::coursecatalog
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/resetpw">
SetHandler perl-script
PerlHandler Apache::resetpw
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/selfenroll">
SetHandler perl-script
PerlHandler Apache::selfenroll
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/createaccount">
SetHandler perl-script
PerlHandler Apache::createaccount
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/dns">
SetHandler perl-script
PerlHandler Apache::londns
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/ajax/spellcheck">
SetHandler perl-script
PerlHandler Apache::spellcheck
</LocationMatch>

<LocationMatch "^/tiny/[\w.-]+/\w+$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lontiny
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

# ------------------------------------------------- Backdoor Adm Tests/Programs

<Location /adm/test>
PerlAccessHandler Apache::lonstatusacc
SetHandler perl-script
PerlHandler Apache::lontest
</Location>

# ------------------------------------------------------- Shutting down a child

PerlChildExitHandler Apache::lonacc::goodbye

#
# LON-CAPA Section (extensions to access.conf permission configuration)
#
# =========================================================== Directory Options

# Start out with "no"

<Directory />
Options None
AllowOverride None
<IfModule mod_authz_core.c>
  Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
  order deny,allow
  deny from all
</IfModule>
</Directory>

# Allow uploaded files to be served

<Directory "/home/httpd/lonUsers">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>
 
# Yes to symbolic links and server-side includes

<Directory /home/httpd/html>
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# If it is in cgi-bin, then it can be executed as a CGI script.

<Directory /home/httpd/cgi-bin>
AllowOverride None
Options ExecCGI FollowSymLinks
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# Allow serving of files in prtspool

<Directory "/home/httpd/prtspool/">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# Allow serving of files in zipspool

<Directory "/home/httpd/zipspool/">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# Allow serving of files in captchaspool

<Directory "/home/httpd/captchaspool/">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

<DirectoryMatch "^/home/httpd/html/priv/.+/">
   DirectoryIndex disabled
</DirectoryMatch>

<DirectoryMatch "^/home/httpd/html/res/.+/">
   DirectoryIndex disabled
</DirectoryMatch>

# ============================================================= Access Handlers

# ------------------------------------------------- Allow server-status reports
<Location /server-status>
PerlAccessHandler Apache::lonstatusacc
SetHandler server-status
</Location>

# ------------------------ Allow LON-CAPA "low-level" connection status reports
<LocationMatch "^/+lon-status/.*">
PerlAccessHandler Apache::lonstatusacc
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

# ------------------- Allow access to local system documentation from localhost
Alias /doc /usr/doc
<Directory /usr/doc>
Options Indexes FollowSymLinks
<IfModule mod_authz_host.c>
  Require local
</IfModule>
<IfModule !mod_authz_host.c>
  order deny,allow
  deny from all
  allow from localhost
</IfModule>
</Directory>

# ******** THESE "SHOULD" NEVER BE ALTERED BY THE USER ************************
# ====================================== Internal Settings / Perl Configuration

PerlSetVar	 lonVersion  '<!-- VERSION -->'
PerlSetVar       lonIDsDir    /home/httpd/lonIDs
PerlSetVar       lonBalanceDir /home/httpd/balanceIDs
PerlSetVar       lonDAVsessDir /home/httpd/webdav/sessionIDs
PerlSetVar       lonTabDir    /home/httpd/lonTabs
PerlSetVar       lonUsersDir  /home/httpd/lonUsers
PerlSetVar       lonIconsURL  /adm/lonIcons
PerlSetVar       londPort     5663
PerlSetVar       lonSysEMail  techsupport@loncapa.org
PerlSetVar       lonDaemons   /home/httpd/perl
PerlSetVar       lonLib       /home/httpd/lib
PerlSetVar       lonSockDir   /home/httpd/sockets
PerlSetVar       lonSockCreate   /home/httpd/sockets/common
PerlSetVar       lonDocRoot   /home/httpd/html
PerlSetVar       lonPrtDir    /home/httpd/prtspool
PerlSetVar       lonIncludes  /home/httpd/html/res/adm/includes
PerlSetVar       lonZipDir    /home/httpd/zipspool
PerlSetVar       lonCaptchaDir     /home/httpd/captchaspool
PerlSetVar       lonCaptchaDb     /home/httpd/captchadb 
PerlSetVar       lonLTIDir    /home/httpd/lonLTItmp
PerlSetVar       ltiIDsDir    /home/httpd/ltiIDs
PerlSetVar       lonFontsDir     /home/httpd/html/adm/fonts
# & separated list of % separated fields in order of
# - internal name to call it, 
# - regexp that it should match (done case-insensitively)
# - regexp that is should not match (done case-insensitively)
# - regexp that will pull out the version number into $1
# - a number that describes the minimum version that has mathml support
# - a number that describes the minimum number version that has unicode support

PerlSetVar       lonBrowsDet  explorer%msie%netscape%msie\s(\d+\.\d+)\;%9999%5&mozilla%mozilla\/[5-9]%msie%mozilla\/(\d+\.\d+)\s%9999%1&netscape%netscape%msie%netscape\/(\d+\.\d+)%9999%7&netscape%netscape\/[7-9]%shouldnotmatch%netscape\/(\d+\.\d+)%9999%7&amaya%amaya%mozilla%V(\d+\.\d+)\s%1%1&safari%safari%msie%safari\/([\d\.]+)%9999%84&chrome%chrome%chromeframe%\s+chrome\/(\d+\.\d+)%9999%1&explorer%\s+rv\:\d+\.\d+%firefox%\s+rv\:(\d+\.\d+)%9999%5&opera%\sOPR\/\d+\.\d+%shouldnotmatch%\sOPR\/(\d+\.\d+)%9999%6&opera%^Opera\/9.80\s.+Version\/\d+\.\d+$%shouldnotmatch%Version\/(\d+\.\d+)$%9999%6&opera%^Opera\/\d+\.\d+\s%Version\/\d+\.\d+$%^Opera\/(\d+\.\d+)\s%9999%6

PerlSetVar       lonTextBrowsers windows\s+ce:lynx
PerlSetVar       lonScansDir  /home/httpd/scantron
PerlSetVar       lonScriptTimeout 10
PerlSetVar	 BugzillaHost	https://bugs.loncapa.org/
PerlSetVar	 FAQHost	http://help.lon-capa.org/
# -----------------------------------------------------------------------------
# NOTE: lonSqlAccess key is the password for the MySQL user
# www@localhost.  This value must always be "localhostkey".
# The only security risk occurs when somebody logs in as 'www' on your system
# (in which case you have much bigger problems than whether or not they
# can access the non-authoritative loncapa database on your machine).

PerlSetVar       lonSqlAccess   localhostkey

#----------------------------------------------------------------------------
#
#   Parameters used by secure lond/lonc

#
#   Secure lond/lonc require ssl certificate and private
#   key files to function correctly.  The certificate
#   files need not be terribly secure, but the private key files
#   should be set up so that only www (the lonc/lond effective user)
#   can read them.
# 
#   The definition below is the full path to the directory that
#   contains the certificate and key files:

PerlSetVar lonCertificateDirectory /home/httpd/lonCerts

#
#  Secure lond/lonc require two certificates and a private host key.
#  The certificates required are that of the lonCAPA certificate authority
#  and the certificate that authority issued to this host.
#  lonnetCertificateAuthority is the name of the file that contains the
#                            lonCAPA certificate authority's certificate.
#  lonnetCertificate is the name of the file that contains the certificate
#                    issued to the host by the certificate authority.
#  Both of these variables are names of files assumed to be in 
#  lonCertificateDirectory:

PerlSetVar lonnetCertificateAuthority loncapaCA.pem
PerlSetVar lonnetCertificate          lonhostcert.pem
PerlSetVar lonnetHostnameCertificate  lonhostnamecert.pem
PerlSetVar lonnetCertRevocationList   loncapaCAcrl.pem

#
#  To generate the request for a certificate, and to negotiate the
#  initial ssl connection, the host requires a private key.  This key
#  is created at lonCAPA install time.  Did we mention above that it
#  should be set so that only www can read it?  The variale below
#  is the name of the file relative to lonnetCertificateDirectory
#  that has the host's private key.  Did we remember to tell you to
#  keep the permissions on that file set to rw-------  (0600)?
#  

PerlSetVar lonnetPrivateKey         lonKey.pem

# Did we mention that the file described above must have
# permissions really locked down so that it can't be stolen?

#-------------------------------------------------------------------------

#   Parameters that define where all the ssl stuff is that's needed
#   to generate certificate requests and, on a system that's a CA
#   the certificate authority.
#    
#    SSLProgram    -> Path to the openssl command
#    SSLDirectory  -> Directory containing ssl configuration files etc.
#    SSLCAConfig   -> Name of the SSL config file for the certificate 
#                     Authority.
#    SSLCAFile     -> Full path to the Certificate authority file 
#                    (on the cert manager system).
#    SSLEmail      -> E-mail address of loncapa certificate manager.
#    The following are good for the loncapa redhat installs and
#    the loncapa certificate authority system:
#
PerlSetVar SSLProgram	/usr/bin/openssl
PerlSetVar SSLDirectory /usr/share/ssl
PerlSetVar SSLCAConfig  loncapaca
PerlSetVar SSLCAFile    /usr/share/ssl/loncapaca/cacert.pem
PerlSetVar SSLEmail     certificate@lon-capa.org

#-------------------------------------------------------------------------


# ====================================== Include support for SSL rewrites

Include conf/loncapa_rewrite.conf


# ====================================== Include machine-specific configuration

Include conf/loncapa.conf

# ================================================= Include local configuration

Include conf/loncapa_apache_local*.conf

# ================================================== Initiate mod_perl starting

PerlRequire      conf/startup.pl
<IfDefine !MODPERL2>
PerlFreshRestart On
</IfDefine>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>