Bug 26265: (QA follow-up) Remove g option from regex, add few dirs
[koha-equinox.git] / etc / koha-httpd.conf
index d8fc923..20a9b45 100644 (file)
 #  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/search"
-   ScriptAlias /search "__OPAC_CGI_DIR__/opac/search"
+   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
-#  TransferLog __LOG_DIR__/koha-opac-access_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
+
+   <Directory "__OPAC_WWW_DIR__">
+      Options -Indexes
+   </Directory>
+
+   # Secure internal stuff
+   <DirectoryMatch "__OPAC_WWW_DIR__/.*/(modules|xslt|includes)">
+      Require all denied
+   </DirectoryMatch>
+
+   <IfModule mod_gzip.c>
+     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$
+  </IfModule>
+
+  <IfModule mod_deflate.c>
+
+    # 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
+    <IfModule mod_headers.c>
+       #properly handle requests coming from behind proxies
+       Header append Vary User-Agent
+    </IfModule>
+  </IfModule>
+
+
+#  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 404 /cgi-bin/koha/errors/404.pl
    ErrorDocument 500 /cgi-bin/koha/errors/500.pl
 
-#  Rewrite Rules
-   RewriteEngine On
+   <IfModule mod_rewrite.c>
+     # Rewrite Rules
+     RewriteEngine On
+
+     #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 ^(.*)_[0-9]{2}\.[0-9]{7}\.(js|css)$ $1.$2 [L]
+
+     # REST API configuration
+     Alias "/api" "__API_CGI_DIR__"
+     <Directory __API_CGI_DIR__>
+       Options +ExecCGI +FollowSymlinks
+       AddHandler cgi-script .pl
+
+       SetEnv MOJO_MODE "production"
+
+       RewriteEngine On
+       RewriteBase /api/
+       RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl
+       RewriteRule ^(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2 [L]
 
-#  Uncomment to turn on rewrite logging
-#  RewriteLog __LOG_DIR__/koha-opac-rewrite.log
-#  RewriteLogLevel 1
-   RewriteCond %{QUERY_STRING} (.*?)(?:[A-Za-z0-9_-]+)=&(.*)
-   RewriteRule (.+) $1?%1%2 [N,R,NE]
+     </Directory>
+   </IfModule>
 
-   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]
+   <IfModule mod_expires.c>
+      ExpiresActive on
+      ExpiresByType text/css "access plus 60 days"
+      ExpiresByType application/javascript "access plus 60 days"
+      ExpiresByType image/png "access plus 12 hours"
+      ExpiresByType image/gif "access plus 12 hours"
+   </IfModule>
 </VirtualHost>
 
 ## Intranet
 #  ServerAlias intranet.mydomain.com
    ScriptAlias /cgi-bin/koha/ "__INTRANET_CGI_DIR__/"
    ScriptAlias /index.html "__INTRANET_CGI_DIR__/mainpage.pl"
-   ScriptAlias /search "__INTRANET_CGI_DIR__/search.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
+#  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
 
-   RewriteEngine On    
-#  Uncomment to turn on rewrite logging
-#  RewriteLog __LOG_DIR__/koha-intranet-rewrite.log
-#  RewriteLogLevel 1
+   <Directory "__INTRANET_WWW_DIR__">
+      Options -Indexes
+   </Directory>
+
+   # Secure internal stuff
+   <DirectoryMatch "__INTRANET_WWW_DIR__/.*/(modules|xslt|includes)">
+      Require all denied
+   </DirectoryMatch>
+
+   <IfModule mod_gzip.c>
+     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$
+   </IfModule>
+
+   <IfModule mod_deflate.c>
+
+     # 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
 
-   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]
+     LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
+     <IfModule mod_headers.c>
+       #properly handle requests coming from behind proxies
+       Header append Vary User-Agent
+     </IfModule>
+  </IfModule>
+
+   <IfModule mod_rewrite.c>
+     # Rewrite Rules
+     RewriteEngine On
+
+     #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/catalogue/detail.pl?biblionumber=$1 [PT]
+     RewriteRule ^/isbn/([^\/]*)/?$ /search?q=isbn:$1 [PT]
+     RewriteRule ^/issn/([^\/]*)/?$ /search?q=issn:$1 [PT]
+     RewriteRule ^(.*)_[0-9]{2}\.[0-9]{7}\.(js|css)$ $1.$2 [L]
+
+
+     # REST API configuration
+     Alias "/api" "__API_CGI_DIR__"
+     <Directory __API_CGI_DIR__>
+       Options +ExecCGI +FollowSymlinks
+       AddHandler cgi-script .pl
+
+       SetEnv MOJO_MODE "production"
+
+       RewriteEngine On
+       RewriteBase /api/
+       RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl
+       RewriteRule ^(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2 [L]
+     </Directory>
+   </IfModule>
+
+   <IfModule mod_expires.c>
+      ExpiresActive on
+      ExpiresByType text/css "access plus 60 days"
+      ExpiresByType application/javascript "access plus 60 days"
+      ExpiresByType image/png "access plus 12 hours"
+      ExpiresByType image/gif "access plus 12 hours"
+   </IfModule>
 </VirtualHost>
+
+# Uncomment this VirtualHost to enable API access through
+# api.__WEBSERVER_HOST__:__WEBSERVER_PORT__
+#<VirtualHost __WEBSERVER_IP__:__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
+#
+#  <IfModule mod_rewrite.c>
+#    <Directory __API_CGI_DIR__>
+#      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]
+#    </Directory>
+#  </IfModule>
+#</VirtualHost>