]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/examples/apache/eg_vhost.conf
After investigation by Dan Scott, Michael Peters and Mike Rylander (a little), apos...
[Evergreen.git] / Open-ILS / examples / apache / eg_vhost.conf
1 # ----------------------------------------------------------------------------------
2 # This is the global Evergreen virtual host config.  Anything you want published
3 # through all virtual hosts (port 80, port 443, etc.) should live in here.
4 # ----------------------------------------------------------------------------------
5
6 # ----------------------------------------------------------------------------------
7 # Point / to the opac - if you have a custom skin or locale, point at it here
8 # ----------------------------------------------------------------------------------
9 RedirectMatch 301 ^/$ /opac/en-US/skin/default/xml/index.xml
10
11 # ----------------------------------------------------------------------------------
12 # Point / to the IP address redirector
13 # ----------------------------------------------------------------------------------
14 #<LocationMatch ^/$>
15 #    SetHandler perl-script
16 #    PerlHandler OpenILS::WWW::Redirect
17 #    Options +ExecCGI
18 #    PerlSendHeader On
19 #    #PerlSetVar OILSRedirectSkin "default"
20 #    # OILSRedirectDepth defaults to the depth of the branch that the OPAC was directed to
21 #    #PerlSetVar OILSRedirectDepth "0"
22 #    #PerlSetVar OILSRedirectLocale "en-US"
23 #    allow from all
24 #</LocationMatch>
25
26
27 # ----------------------------------------------------------------------------------
28 # Assign a default locale to the accessible OPAC
29 # ----------------------------------------------------------------------------------
30 RedirectMatch 301 ^/opac/extras/slimpac/start.html$    /opac/en-US/extras/slimpac/start.html
31 RedirectMatch 301 ^/opac/extras/slimpac/advanced.html$ /opac/en-US/extras/slimpac/advanced.html
32
33 # ----------------------------------------------------------------------------------
34 # Configure the gateway
35 # ----------------------------------------------------------------------------------
36 OSRFGatewayConfig /openils/conf/opensrf_core.xml
37 # Translator memcache server.  Default is localhost
38 # OSRFTranslatorCacheServer 127.0.0.1:11211
39
40
41 # ----------------------------------------------------------------------------------
42 # Added content plugin
43 # ----------------------------------------------------------------------------------
44 <Location /opac/extras/ac/>
45     SetHandler perl-script
46     PerlHandler OpenILS::WWW::AddedContent
47     Options +ExecCGI
48     PerlSendHeader On
49     allow from all
50 </Location>
51
52 # ----------------------------------------------------------------------------------
53 # Replace broken cover images with a transparent GIF by default
54 # ----------------------------------------------------------------------------------
55 RewriteEngine ON
56 RewriteRule ^/opac/extras/ac/jacket/(small|medium|large)/$ \
57     /opac/images/blank.png [P,L]
58
59 # ----------------------------------------------------------------------------------
60 # Add the row ID (RID) and date so we can make unAPI happy
61 # ----------------------------------------------------------------------------------
62 RewriteCond %{QUERY_STRING} (^r|&r)=(\d+)
63 RewriteRule . - [E=OILS_OPAC_RID:%2,E=OILS_TIME_YEAR:%{TIME_YEAR}]
64
65 # ----------------------------------------------------------------------------------
66 # Pull the locale from the URL
67 # ----------------------------------------------------------------------------------
68 RewriteCond %{REQUEST_URI} ^/opac/(.*?)/
69 RewriteRule . - [E=locale:%1]
70
71 # ----------------------------------------------------------------------------------
72 # Configure the OPAC
73 # ----------------------------------------------------------------------------------
74 <LocationMatch /opac/>
75     AddType application/xhtml+xml .xml
76    
77     # - configure mod_xmlent
78     XMLEntStripPI "yes"
79     XMLEntEscapeScript "no"
80     XMLEntStripComments "yes"
81     XMLEntContentType "text/html; charset=utf-8"
82     # forces quirks mode which we want for now
83     XMLEntStripDoctype "yes" 
84
85     # - set up the include handlers
86     Options +Includes
87     AddOutputFilter INCLUDES .xsl
88     AddOutputFilter INCLUDES;XMLENT .xml
89                     
90     SetEnvIf Request_URI ".*" OILS_OPAC_BASE=/opac/
91     
92     # This gives you the option to configure a different host to serve OPAC images from
93     # Specify the hostname (without protocol) and path to the images.  Protocol will
94     # be determined at runtime
95     #SetEnvIf Request_URI ".*" OILS_OPAC_IMAGES_HOST=static.example.org/opac/
96
97     # In addition to loading images from a static host, you can also load CSS and/or
98     # Javascript from a static host or hosts. Protocol will be determined at runtime
99     # and/or by configuration options immediately following.
100     #SetEnvIf Request_URI ".*" OILS_OPAC_CSS_HOST=static.example.org/opac/
101     #SetEnvIf Request_URI ".*" OILS_OPAC_JS_HOST=static.example.org/opac/
102
103     # If you are not able to serve static content via https and 
104     # wish to force http:// (and are comfortable with mixed-content
105     # warnings in client browsers), set this:
106     #SetEnvIf Request_URI ".*" OILS_OPAC_STATIC_PROTOCOL=http
107
108     # If you would prefer to fall back to your non-static servers for 
109     # https pages, avoiding mixed-content warnings in client browsers
110     # and are willing to accept some increased server load, set this:
111     #SetEnvIf Request_URI ".*" OILS_OPAC_BYPASS_STATIC_FOR_HTTPS=yes
112
113     # Specify a ChiliFresh account to integrate their services with the OPAC
114     #SetEnv OILS_CHILIFRESH_ACCOUNT
115     #SetEnv OILS_CHILIFRESH_PROFILE
116     #SetEnv OILS_CHILIFRESH_URL http://chilifresh.com/on-site/js/evergreen.js
117
118     # Specify the initial script URL for Novelist (containing account credentials, etc.)
119     #SetEnv OILS_NOVELIST_URL
120     
121
122     # Uncomment to force SSL any time a patron is logged in.  This protects 
123     # authentication tokens.  Left commented out for backwards compat for now.
124     #SetEnv OILS_OPAC_FORCE_LOGIN_SSL 1
125
126
127     # If set, the skin uses the combined JS file at $SKINDIR/js/combined.js
128     #SetEnv OILS_OPAC_COMBINED_JS 1
129
130 </LocationMatch>
131
132 <Location /opac/>
133     # ----------------------------------------------------------------------------------
134     # Some mod_deflate fun
135     # ----------------------------------------------------------------------------------
136     <IfModule mod_deflate.c>
137         SetOutputFilter DEFLATE
138
139         BrowserMatch ^Mozilla/4 gzip-only-text/html
140         BrowserMatch ^Mozilla/4\.0[678] no-gzip
141         BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
142
143         SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
144
145         <IfModule mod_headers.c>
146             Header append Vary User-Agent env=!dont-vary
147         </IfModule>
148     </IfModule>
149
150 </Location>
151
152 <Location //opac/>
153     # ----------------------------------------------------------------------------------
154     # Some mod_deflate fun
155     # ----------------------------------------------------------------------------------
156     <IfModule mod_deflate.c>
157         SetOutputFilter DEFLATE
158
159         BrowserMatch ^Mozilla/4 gzip-only-text/html
160         BrowserMatch ^Mozilla/4\.0[678] no-gzip
161         BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
162
163         SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
164
165         <IfModule mod_headers.c>
166             Header append Vary User-Agent env=!dont-vary
167         </IfModule>
168     </IfModule>
169
170 </Location>
171
172 <Location /js/>
173     # ----------------------------------------------------------------------------------
174     # Some mod_deflate fun
175     # ----------------------------------------------------------------------------------
176     <IfModule mod_deflate.c>
177         SetOutputFilter DEFLATE
178
179         BrowserMatch ^Mozilla/4 gzip-only-text/html
180         BrowserMatch ^Mozilla/4\.0[678] no-gzip
181         BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
182
183         SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
184
185         <IfModule mod_headers.c>
186             Header append Vary User-Agent env=!dont-vary
187         </IfModule>
188     </IfModule>
189
190 </Location>
191
192 # ----------------------------------------------------------------------------------
193 # Force SSL on the OPAC's "My Account" page
194 # ----------------------------------------------------------------------------------
195 <LocationMatch .*/myopac.xml>
196     SSLRequireSSL
197 </LocationMatch>
198
199 <LocationMatch /opac/extras/>
200     # Force to en-US for now to satisfy bbags.xml
201     SetEnv locale en-US
202     Options +Includes
203     AddOutputFilter INCLUDES .xml
204     AddType application/xhtml+xml .xml
205 </LocationMatch>
206
207 RewriteCond %{QUERY_STRING} locale=([^&]*)
208 RewriteRule ^/opac/[a-z]{2}-[A-Z]{2}/extras/slimpac/(.*)$ /opac/%1/extras/slimpac/$1? [redirect]
209 <LocationMatch /opac/[a-z]{2}-[A-Z]{2}/extras/slimpac/>
210     AddOutputFilter INCLUDES;XMLENT .html
211 </LocationMatch>
212
213 # ----------------------------------------------------------------------------------
214 # Run server-side XUL and XHTML through xmlent to load the correct XML entities
215 # ----------------------------------------------------------------------------------
216 RewriteCond %{HTTP:Accept-Language} ([a-z]{2}-[A-Z]{2})
217 RewriteRule ^/xul/      -       [E=locale:%1]
218 RewriteRule ^/reports/  -       [E=locale:%1]
219
220 # Default to en-US if we haven't matched a locale of the form xx-YY 
221 RewriteCond %{HTTP:Accept-Language} !([a-z]{2}-[A-Z]{2})
222 RewriteRule ^/xul/      -       [E=locale:en-US]
223 RewriteRule ^/reports/  -       [E=locale:en-US]
224
225 # Default to en-US if we are just given en
226 RewriteCond %{ENV:locale} ^$ [OR]
227 RewriteCond %{ENV:locale} ^en$
228 RewriteRule . - [E=locale:en-US]
229
230 <LocationMatch /xul/.*\.x?html$>
231     Options +Includes
232     XMLEntEscapeScript "no"
233     XMLEntStripComments "yes"
234     XMLEntStripPI "yes"
235     XMLEntStripDoctype "yes"
236     XMLEntContentType "text/html; charset=utf-8"
237     AddOutputFilter INCLUDES;XMLENT .xhtml
238     AddOutputFilter INCLUDES;XMLENT .html
239     allow from all
240 </LocationMatch>
241
242
243 <LocationMatch /xul/.*\.xul$>
244     Options +Includes
245     XMLEntContentType "application/vnd.mozilla.xul+xml"
246     AddOutputFilter INCLUDES;XMLENT .xul
247     allow from all
248 </LocationMatch>
249
250 # ----------------------------------------------------------------------------------
251 # Self-serve password interface
252 # ----------------------------------------------------------------------------------
253 <Location /opac/password>
254     SetHandler perl-script
255     PerlHandler OpenILS::WWW::PasswordReset::password_reset
256     Options +ExecCGI
257     PerlSendHeader On
258     allow from all
259
260     # Force clients to use HTTPS
261     RewriteCond %{HTTPS} !=on [NC]
262     RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
263 </Location>
264
265 # ----------------------------------------------------------------------------------
266 # Supercat feeds
267 # ----------------------------------------------------------------------------------
268 <Location /opac/extras/oisbn>
269     SetHandler perl-script
270     PerlHandler OpenILS::WWW::SuperCat::oisbn
271     Options +ExecCGI
272     PerlSendHeader On
273     allow from all
274 </Location>
275 <Location /opac/extras/supercat>
276     SetHandler perl-script
277     PerlHandler OpenILS::WWW::SuperCat::supercat
278     Options +ExecCGI
279     PerlSendHeader On
280     allow from all
281 </Location>
282 <Location /opac/extras/unapi>
283     SetHandler perl-script
284     PerlHandler OpenILS::WWW::SuperCat::unapi
285     Options +ExecCGI
286     PerlSendHeader On
287     allow from all
288 </Location>
289 <Location /opac/extras/feed/bookbag>
290     SetHandler perl-script
291     PerlHandler OpenILS::WWW::SuperCat::bookbag_feed
292     Options +ExecCGI
293     PerlSendHeader On
294     allow from all
295 </Location>
296 <Location /opac/extras/opensearch>
297     SetHandler perl-script
298     PerlHandler OpenILS::WWW::SuperCat::opensearch_feed
299     Options +ExecCGI
300     PerlSendHeader On
301     allow from all
302 </Location>
303 <Location /opac/extras/sru>
304     SetHandler perl-script
305     PerlHandler OpenILS::WWW::SuperCat::sru_search
306     Options +ExecCGI
307     PerlSendHeader On
308     allow from all
309 </Location>
310 <Location /opac/extras/sru_auth>
311     SetHandler perl-script
312     PerlHandler OpenILS::WWW::SuperCat::sru_auth_search
313     Options +ExecCGI
314     PerlSendHeader On
315     allow from all
316 </Location>
317 <Location /opac/extras/feed/freshmeat>
318     SetHandler perl-script
319     PerlHandler OpenILS::WWW::SuperCat::changes_feed
320     Options +ExecCGI
321     PerlSendHeader On
322     allow from all
323 </Location>
324 <Location /opac/extras/browse>
325     SetHandler perl-script
326     PerlHandler OpenILS::WWW::SuperCat::string_browse
327     Options +ExecCGI
328     PerlSendHeader On
329     allow from all
330 </Location>     
331 <Location /opac/extras/startwith>
332     SetHandler perl-script
333     PerlHandler OpenILS::WWW::SuperCat::string_startwith
334     Options +ExecCGI
335     PerlSendHeader On
336     allow from all
337 </Location>     
338         
339 # ----------------------------------------------------------------------------------
340 # Module for displaying OpenSRF API documentation
341 # ----------------------------------------------------------------------------------
342 <Location /opac/extras/docgen.xsl>
343     AddOutputFilter INCLUDES .xsl
344 </Location>
345
346 # ----------------------------------------------------------------------------------
347 # Module for processing staff-client offline scripts lives here
348 # ----------------------------------------------------------------------------------
349 <Directory "/openils/var/cgi-bin/offline">
350     AddHandler cgi-script .pl
351     AllowOverride None
352     Options +ExecCGI
353     allow from all
354 </Directory>
355         
356         
357 # ----------------------------------------------------------------------------------
358 # XXX Note, it's important to explicitly set the JSON encoding style 
359 # (OSRFGatewayLegacyJSON), since the default encoding style will likely change 
360 # with OpenSRF 1.0
361 # ----------------------------------------------------------------------------------
362 # OpenSRF JSON legacy gateway
363 # ----------------------------------------------------------------------------------
364 <Location /gateway>
365     SetHandler osrf_json_gateway_module
366     OSRFGatewayLegacyJSON "true"
367     allow from all
368 </Location>
369 # ----------------------------------------------------------------------------------
370 # New-style OpenSRF JSON gateway
371 # ----------------------------------------------------------------------------------
372 <Location /osrf-gateway-v1>
373     SetHandler osrf_json_gateway_module
374     OSRFGatewayLegacyJSON "false"
375     allow from all
376 </Location>
377
378 # ----------------------------------------------------------------------------------
379 # OpenSRF-over-HTTP translator
380 # (http://open-ils.org/dokuwiki/doku.php?id=opensrf_over_http)
381 # ----------------------------------------------------------------------------------
382 <Location /osrf-http-translator>
383     SetHandler osrf_http_translator_module
384     allow from all
385 </Location>
386
387 # ----------------------------------------------------------------------------------
388 # The exporter lives here
389 # ----------------------------------------------------------------------------------
390 <Location /exporter>
391     SetHandler perl-script
392     PerlSetVar OILSProxyTitle "Exporter Login"
393     PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to export records"
394     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
395     PerlHandler OpenILS::WWW::Proxy OpenILS::WWW::Exporter
396     Options +ExecCGI
397     PerlSendHeader On
398     allow from all
399 </Location>
400
401 <Location /opac/extras/merge_template>
402     SetHandler perl-script
403     PerlSetVar OILSProxyTitle "Batch Update Login"
404     PerlSetVar OILSProxyDescription "Please log in to update records in batch"
405     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
406     PerlHandler OpenILS::WWW::Proxy OpenILS::WWW::TemplateBatchBibUpdate
407     PerlSendHeader On
408     Options +ExecCGI
409     allow from all
410 </Location>
411
412 <Location /opac/extras/circ>
413     SetHandler perl-script
414     PerlSetVar OILSProxyTitle "Circ Extras Login"
415     PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to export records"
416     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
417     PerlHandler OpenILS::WWW::Proxy
418     Options +ExecCGI
419     PerlSendHeader On
420     allow from all
421 </Location>
422
423 # ----------------------------------------------------------------------------------
424 # Reporting output lives here
425 # ----------------------------------------------------------------------------------
426 <Location /reporter/>
427     SetHandler perl-script
428     PerlSetVar OILSProxyTitle "Report Login"
429     PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to view this report"
430     PerlSetVar OILSProxyPermissions "VIEW_REPORT_OUTPUT"
431     PerlHandler OpenILS::WWW::Proxy
432     Options +ExecCGI
433     PerlSendHeader On
434     allow from all
435 </Location>
436
437 # ----------------------------------------------------------------------------------
438 # Selfcheck interface
439 # ----------------------------------------------------------------------------------
440 <LocationMatch .*/selfcheck.xml>
441     SetHandler perl-script
442     PerlSetVar OILSProxyTitle "Self-check Login"
443     PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to activate the self-check interface"
444     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
445     PerlHandler OpenILS::WWW::Proxy
446     Options +ExecCGI
447     PerlSendHeader On
448     allow from all
449 </LocationMatch>
450
451
452 # ----------------------------------------------------------------------------------
453 # Reports GUI
454 # ----------------------------------------------------------------------------------
455 <LocationMatch /reports>
456     Options +Includes
457     AddOutputFilter INCLUDES;XMLENT .xhtml
458 </LocationMatch>
459
460 <LocationMatch /reports/fm_IDL.xml>
461     IDLChunkStripPI "yes"
462     IDLChunkEscapeScript "no"
463     IDLChunkStripComments "yes"
464     IDLChunkStripDoctype "yes"
465     IDLChunkContentType "application/xml; charset=utf-8"
466     AddOutputFilter INCLUDES;IDLCHUNK .xml
467 </LocationMatch>
468
469 # ----------------------------------------------------------------------------------
470 # EDI Message viewer
471 # ----------------------------------------------------------------------------------
472 <Location /edi>
473     SetHandler perl-script
474     PerlHandler OpenILS::WWW::EDI
475     Options +ExecCGI
476     PerlSendHeader On
477     allow from all
478 </Location>     
479
480 # ----------------------------------------------------------------------------------
481 # XML-RPC gateway
482 # ----------------------------------------------------------------------------------
483 <Location /xml-rpc>
484     SetHandler perl-script
485     PerlHandler OpenILS::WWW::XMLRPCGateway
486     Options +ExecCGI
487     PerlSendHeader On
488     allow from all
489 </Location>
490
491 # ----------------------------------------------------------------------------------
492 # Conify - next-generation Evergreen administration interface
493 # ----------------------------------------------------------------------------------
494 RewriteRule ^/conify/([a-z]{2}-[A-Z]{2})/global/(.*)$ /conify/global/$2 [E=locale:$1,L]
495 <Location /conify>
496     Options +Includes
497     XMLEntStripPI "yes"
498     XMLEntEscapeScript "no"
499     XMLEntStripComments "no"
500     XMLEntContentType "text/html; charset=utf-8"
501     AddOutputFilter INCLUDES;XMLENT .html
502  
503     SetHandler perl-script
504     PerlSetVar OILSProxyTitle "Dojo Admin Login"
505     PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to administer Evergreen"
506     PerlSetVar OILSProxyPermissions "STAFF_LOGIN"
507     PerlHandler OpenILS::WWW::Proxy
508     Options +ExecCGI
509     PerlSendHeader On
510     allow from all
511 </Location>
512
513 # ----------------------------------------------------------------------------------
514 # Vandelay importers / exporters (your Web interface to bibliographic travel)
515 # ----------------------------------------------------------------------------------
516 RedirectMatch 301 ^/vandelay/vandelay.xml(.*)$ /vandelay/en-US/vandelay.xml$1
517
518 RewriteRule ^/vandelay/([a-z]{2}-[A-Z]{2})/(.*)$ /vandelay/$2 [E=locale:$1]
519
520 <LocationMatch /vandelay.*xml>
521     XMLEntStripPI "yes"
522     XMLEntEscapeScript "no"
523     XMLEntStripComments "yes"
524     XMLEntContentType "text/html; charset=utf-8"
525     XMLEntStripDoctype "yes"
526     AddOutputFilter INCLUDES;XMLENT .xml
527         SetHandler perl-script
528         PerlSetVar OILSProxyTitle "Vandelay Login"
529         PerlSetVar OILSProxyDescription "Please log in with an authorized staff account to import MARC records"
530         PerlSetVar OILSProxyPermissions "IMPORT_MARC"
531         PerlHandler OpenILS::WWW::Proxy
532         Options +ExecCGI
533         PerlSendHeader On
534         allow from all
535 </LocationMatch>
536 <Location /vandelay-upload>
537     SetHandler perl-script
538     PerlHandler OpenILS::WWW::Vandelay::spool_marc
539     Options +ExecCGI
540     allow from all
541 </Location>
542
543 # OpenURL 0.1 searching based on OpenSearch
544 RewriteMap openurl prg:/openils/bin/openurl_map.pl
545 RewriteCond %{QUERY_STRING} (^.*$)
546 RewriteRule ^/openurl$ ${openurl:%1} [NE,PT]
547
548
549
550 # General Evergreen web template processor
551 <Location /eg>
552     SetHandler perl-script
553     PerlHandler OpenILS::WWW::EGWeb
554     Options +ExecCGI
555     PerlSendHeader On
556     allow from all
557 </Location>
558 # Note: the template processor will decline handling anything it does not
559 # have an explicit configuration for, which means it will fall back to 
560 # Apache to serve the file.  However, in the interest of speed, go ahead 
561 # and tell Apache to avoid asking OpenILS::WWW::EGWeb for static content.
562 # Add more exemptions as needed.
563 <LocationMatch ^/eg/.*(\.js|\.css|\.html|\.xhtml|\.xml|\.jpg|\.png|\.gif)$>
564     SetHandler None
565 </LocationMatch>
566
567 # ----------------------------------------------------------------------------------
568 # Some mod_deflate logging setup
569 # ----------------------------------------------------------------------------------
570 <IfModule mod_deflate.c>
571     DeflateFilterNote Input instream
572     DeflateFilterNote Output outstream
573     DeflateFilterNote Ratio ratio
574
575     LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
576     CustomLog /var/log/apache2/deflate_log deflate
577 </IfModule>
578
579
580 <Location /IDL2js>
581
582     SetHandler perl-script
583     PerlHandler OpenILS::WWW::IDL2js
584     Options +ExecCGI
585     PerlSendHeader On
586     allow from all
587
588     <IfModule mod_headers.c>
589         Header append Cache-Control "public"
590     </IFModule>
591
592     <IfModule mod_deflate.c>
593         SetOutputFilter DEFLATE
594         BrowserMatch ^Mozilla/4 gzip-only-text/html
595         BrowserMatch ^Mozilla/4\.0[678] no-gzip
596         BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
597         SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
598         <IfModule mod_headers.c>
599             Header append Vary User-Agent env=!dont-vary
600         </IfModule>
601     </IfModule>
602 </Location>