# Koha Apache Configuration Directives #NameVirtualHost * ## OPAC ServerAdmin __WEBMASTER_EMAIL__ DocumentRoot __OPAC_WWW_DIR__ ServerName __WEBSERVER_HOST__ # ServerAlias opac.mydomain.com ScriptAlias /cgi-bin/koha/ "__OPAC_CGI_DIR__/opac/" ScriptAlias /index.html "__OPAC_CGI_DIR__/opac/opac-main.pl" ScriptAlias /opac-search.pl "__OPAC_CGI_DIR__/opac/opac-search.pl" ScriptAlias /search "__OPAC_CGI_DIR__/opac/opac-search.pl" ErrorLog __LOG_DIR__/koha-opac-error_log # CustomLog __LOG_DIR__/koha-opac-access.log combined # TransferLog __LOG_DIR__/koha-opac-access.log SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml" SetEnv PERL5LIB "__PERL_MODULE_DIR__" # This syntax allows you to override a system preference # for a given virtual host. Use with caution! # You should add all the system preferences you override # in one or more vhosts to the environment variable # OVERRIDE_SYSPREF_NAMES for your staff intranet vhost # SetEnv OVERRIDE_SYSPREF_PrefName Value Options -Indexes # Secure internal stuff Order deny,allow Deny from all mod_gzip_on yes mod_gzip_dechunk yes mod_gzip_keep_workfiles No mod_gzip_can_negotiate yes mod_gzip_update_static No mod_gzip_temp_dir /tmp mod_gzip_minimum_file_size 512 mod_gzip_maximum_file_size 1000000 mod_gzip_maximum_inmem_size 1000000 mod_gzip_handle_methods GET POST mod_gzip_item_exclude reqheader "User-Agent: .*Mozilla/4\..*\[" mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader Content-Type:image/* mod_gzip_item_include file \.js$ mod_gzip_item_include mime ^application/javascript$ mod_gzip_item_include mime ^application/x-javascript$ mod_gzip_item_include file \.php$ mod_gzip_item_include mime ^text/html$ mod_gzip_item_include file \.css$ mod_gzip_item_include mime ^text/css$ # Compress content with type html, text, and css, ... AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript DeflateCompressionLevel 9 # Properly handle old browsers that do not support compression BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate #properly handle requests coming from behind proxies Header append Vary User-Agent # Repeat this virtualhost stanza changing the following environment vars to # create multiple OPAC interfaces with custom css and/or search limits: # SetEnv OPAC_CSS_OVERRIDE mystyle.css # SetEnv OPAC_SEARCH_LIMIT branch:CODE # SetEnv OPAC_LIMIT_OVERRIDE 1 Options +FollowSymLinks ErrorDocument 400 /cgi-bin/koha/errors/400.pl ErrorDocument 401 /cgi-bin/koha/errors/401.pl ErrorDocument 403 /cgi-bin/koha/errors/403.pl ErrorDocument 404 /cgi-bin/koha/errors/404.pl ErrorDocument 500 /cgi-bin/koha/errors/500.pl # Rewrite Rules RewriteEngine On # Uncomment to turn on rewrite logging #RewriteLog __LOG_DIR__/koha-opac-rewrite.log #RewriteLogLevel 1 #The following two directives are unnecessary to proper Koha functioning. #RewriteCond %{QUERY_STRING} (.*?)(?:[A-Za-z0-9_-]+)=&(.*) #RewriteRule (.+) $1?%1%2 [N,R,NE] RewriteRule ^/bib/([^\/]*)/?$ /cgi-bin/koha/opac-detail\.pl?bib=$1 [PT] RewriteRule ^/isbn/([^\/]*)/?$ /search?q=isbn:$1 [PT] RewriteRule ^/issn/([^\/]*)/?$ /search?q=issn:$1 [PT] RewriteRule ^(.*)_(.*).js$ $1.js [N,L] RewriteRule ^(.*)_(.*).css$ $1.css [N,L] # REST API configuration Alias "/api" "__API_CGI_DIR__" Options +ExecCGI +FollowSymlinks AddHandler cgi-script .pl SetEnv MOJO_MODE "production" RewriteEngine On RewriteBase /api/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/../api/$1/app.pl -f RewriteRule ^(.*?)/.* $1/app.pl/api/$0 [L] ## Intranet ServerAdmin __WEBMASTER_EMAIL__ DocumentRoot __INTRANET_WWW_DIR__ ServerName __WEBSERVER_HOST__:__WEBSERVER_PORT_LIBRARIAN__ # ServerAlias intranet.mydomain.com ScriptAlias /cgi-bin/koha/ "__INTRANET_CGI_DIR__/" ScriptAlias /index.html "__INTRANET_CGI_DIR__/mainpage.pl" ScriptAlias /search "__INTRANET_CGI_DIR__/catalogue/search.pl" Alias /plugin/ "__PLUGINS_DIR__/" ErrorLog __LOG_DIR__/koha-error_log # TransferLog __LOG_DIR__/koha-access.log SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml" SetEnv PERL5LIB "__PERL_MODULE_DIR__" Options +FollowSymLinks # If you are overriding any system preferences, # list them in this variable so the preference editor # knows that they have been overridden. # SetEnv OVERRIDE_SYSPREF_NAMES "Pref1,Pref2,Pref3" ErrorDocument 400 /cgi-bin/koha/errors/400.pl ErrorDocument 401 /cgi-bin/koha/errors/401.pl ErrorDocument 403 /cgi-bin/koha/errors/403.pl ErrorDocument 404 /cgi-bin/koha/errors/404.pl ErrorDocument 500 /cgi-bin/koha/errors/500.pl Options -Indexes # Secure internal stuff Order deny,allow Deny from all mod_gzip_on yes mod_gzip_dechunk yes mod_gzip_keep_workfiles No mod_gzip_can_negotiate yes mod_gzip_update_static No mod_gzip_temp_dir /tmp mod_gzip_minimum_file_size 512 mod_gzip_maximum_file_size 1000000 mod_gzip_maximum_inmem_size 1000000 mod_gzip_handle_methods GET POST mod_gzip_item_exclude reqheader "User-Agent: .*Mozilla/4\..*\[" mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader Content-Type:image/* mod_gzip_item_include file \.js$ mod_gzip_item_include mime ^application/javascript$ mod_gzip_item_include mime ^application/x-javascript$ mod_gzip_item_include file \.php$ mod_gzip_item_include mime ^text/html$ mod_gzip_item_include file \.css$ mod_gzip_item_include mime ^text/css$ # Compress content with type html, text, and css, ... AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript DeflateCompressionLevel 9 # Properly handle old browsers that do not support compression BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate #properly handle requests coming from behind proxies Header append Vary User-Agent # Rewrite Rules RewriteEngine On # Uncomment to turn on rewrite logging #RewriteLog __LOG_DIR__/koha-intranet-rewrite.log #RewriteLogLevel 1 #The following two directives are unnecessary to proper Koha functioning. #RewriteCond %{QUERY_STRING} (.*?)(?:[A-Za-z0-9_-]+)=&(.*) #RewriteRule (.+) $1?%1%2 [N,R,NE] RewriteRule ^/bib/([^\/]*)/?$ /cgi-bin/koha/detail\.pl?bib=$1 [PT] RewriteRule ^/isbn/([^\/]*)/?$ /search?q=isbn:$1 [PT] RewriteRule ^/issn/([^\/]*)/?$ /search?q=issn:$1 [PT] RewriteRule ^(.*)_(.*).js$ $1.js [N,L] RewriteRule ^(.*)_(.*).css$ $1.css [N,L] # REST API configuration Alias "/api" "__API_CGI_DIR__" Options +ExecCGI +FollowSymlinks AddHandler cgi-script .pl SetEnv MOJO_MODE "production" RewriteEngine On RewriteBase /api/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/../api/$1/app.pl -f RewriteRule ^(.*?)/.* $1/app.pl/api/$0 [L] # Uncomment this VirtualHost to enable API access through # api.__WEBSERVER_HOST__:__WEBSERVER_PORT__ # # ServerAdmin __WEBMASTER_EMAIL__ # DocumentRoot __INTRANET_CGI_DIR__/api # ServerName api.__WEBSERVER_HOST__:__WEBSERVER_PORT__ # SetEnv KOHA_CONF "__KOHA_CONF_DIR__/koha-conf.xml" # SetEnv PERL5LIB "__PERL_MODULE_DIR__" # ErrorLog __LOG_DIR__/koha-api-error_log # # # # Options +ExecCGI +FollowSymlinks # AddHandler cgi-script .pl # # SetEnv MOJO_MODE "production" # # RewriteEngine on # # RewriteRule ^api/(.*) $1 [L] # # RewriteCond %{REQUEST_FILENAME} !-f # RewriteCond %{REQUEST_FILENAME} !-d # RewriteCond %{DOCUMENT_ROOT}/$1/app.pl -f # RewriteRule ^(.*?)/.* $1/app.pl/api/$0 [L] # # #