aadbe7d2e5ce525686a6dd1b55fa38a14ba764f3
[mirror/dsa-puppet.git] / modules / roles / templates / apache-www.debian.org.erb
1 ##
2 ## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
3 ## USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git
4 ##
5
6 # Need to turn on negotiation_module
7 <Directory <%= @wwwdo_document_root %>/>
8   Options +MultiViews +FollowSymLinks +Indexes
9   AddHandler type-map var
10   # Make sure that the srm.conf directive is commented out.
11   AddDefaultCharSet Off
12   AllowOverride AuthConfig FileInfo
13   Require all granted
14
15   # Serve icons as image/x-icon
16   AddType image/x-icon .ico
17
18   # Serve RSS feeds as application/rss+xml
19   AddType application/rss+xml .rdf
20
21   # Nice caching..
22   ExpiresActive On
23   ExpiresDefault "access plus 1 day"
24   ExpiresByType image/gif "access plus 1 week"
25   ExpiresByType image/jpeg "access plus 1 week"
26   ExpiresByType image/png "access plus 1 week"
27   ExpiresByType image/x-icon "access plus 1 week"
28
29   # FileEtag needs to be the same across mirrors (used for caching, ignore inode)
30   FileEtag MTime Size
31
32   # language stuff, for web site translations
33   # for boot-floppies docs only: sk
34   AddLanguage en .en
35   AddLanguage en-us .en-us
36   AddLanguage en-gb .en-gb
37   AddLanguage ar .ar
38   AddLanguage bg .bg
39   AddLanguage ca .ca
40   AddLanguage cs .cs
41   AddLanguage da .da
42   AddLanguage de .de
43   AddLanguage el .el
44   AddLanguage eo .eo
45   AddLanguage es .es
46   AddLanguage fi .fi
47   AddLanguage fr .fr
48   AddLanguage hr .hr
49   AddLanguage hu .hu
50   AddLanguage hy .hy
51   AddLanguage id .id
52   AddLanguage it .it
53   AddLanguage ja .ja
54   AddLanguage ko .ko
55   AddLanguage lt .lt
56   AddLanguage nl .nl
57   AddLanguage no .no
58   AddLanguage nb .nb
59   AddLanguage pl .pl
60   AddLanguage pt .pt
61   AddLanguage pt-br .pt-br
62   AddLanguage ro .ro
63   AddLanguage ru .ru
64   AddLanguage sk .sk
65   AddLanguage sl .sl
66   AddLanguage sv .sv
67   AddLanguage tr .tr
68   AddLanguage uk .uk
69   AddLanguage vi .vi
70   AddLanguage zh-CN .zh-cn
71   AddLanguage zh-HK .zh-hk
72   AddLanguage zh-TW .zh-tw
73   LanguagePriority en fr de it es ja pl hr da pt pt-br fi zh-cn zh-hk zh-tw cs sv ko no nb ru tr eo ar nl hu ro sk el ca en-us en-gb id lt sl bg uk hy vi
74
75   DirectoryIndex maintenance index index.html index.shtml index.htm
76
77   <Files *.html.es>
78     ForceType text/html
79   </Files>
80
81   <Files *.pdf.es>
82     ForceType application/pdf
83   </Files>
84
85   <Files *.txt.es>
86     ForceType text/plain
87   </Files>
88 </Directory>
89
90 <Macro common-www-other.d.o>
91    ServerName debian.org
92    ServerAdmin webmaster@debian.org
93
94    ServerAlias www.debian.net
95    ServerAlias debian.net
96
97    ServerAlias www.debian.eu
98    ServerAlias debian.eu
99
100    ServerAlias www.debian.fi
101    ServerAlias debian.fi
102
103    ServerAlias www.debian.nl
104    ServerAlias debian.nl
105
106    ServerAlias www.debian.com
107    ServerAlias debian.com
108
109    ServerAlias debian.us
110    ServerAlias www.debian.us
111
112    ServerAlias debian.gr
113    ServerAlias www.debian.gr
114
115    ServerAlias www.debian.es
116    ServerAlias debian.es
117
118    ServerAlias www.debian.at
119
120    DocumentRoot <%= @wwwdo_document_root %>/
121    LogFormat "0.0.0.0 - %u %{[%d/%b/%Y:00:00:00 %z]}t \"%r\" %>s %b \"%{Referer}i\" \"-\" %V" privacy+host
122    ErrorLog /var/log/apache2/www-other.debian.org-error.log
123    CustomLog /var/log/apache2/www-other.debian.org-access.log privacy+host
124 </Macro>
125
126 <Macro common-www.d.o-inner>
127    ServerAdmin webmaster@debian.org
128    DocumentRoot <%= @wwwdo_document_root %>/
129
130    # CacheNegotiatedDocs: By default, Apache sends Pragma: no-cache with each
131    # document that was negotiated on the basis of content. This asks proxy
132    # servers not to cache the document. Uncommenting the following line disables
133    # this behavior, and proxies will be allowed to cache the documents.
134    CacheNegotiatedDocs On
135
136 # Custom Error
137    ErrorDocument 404 /devel/website/errors/404
138    RewriteCond %{DOCUMENT_ROOT}/devel/website/errors/404.$2.html -f
139    RewriteRule ^/(?!devel/website/errors/)(.*/)?404\.(.+)\.html$ /devel/website/errors/404.$2.html [L]
140
141 # the joys of backwards compatibility
142    RedirectPermanent /cgi-bin/cvsweb https://cvs.debian.org
143    RedirectPermanent /Lists-Archives https://lists.debian.org
144    RedirectPermanent /search https://search.debian.org
145    RedirectPermanent /Packages https://packages.debian.org
146    RedirectPermanent /lintian https://lintian.debian.org
147
148    RedirectPermanent /SPI https://www.spi-inc.org
149 #   RedirectPermanent /OpenHardware http://www.openhardware.org
150    RedirectPermanent /OpenSource https://opensource.org
151
152    RedirectPermanent /Bugs/db/ix/pseudopackages.html /Bugs/pseudo-packages
153    RewriteEngine on
154    RewriteRule ^/Bugs/db/pa/l([^/]+).html$ https://bugs.debian.org/$1
155    RewriteRule ^/Bugs/db/[[:digit:]][[:digit:]]/([[:digit:]][[:digit:]][[:digit:]]+).html$ https://bugs.debian.org/$1
156    RewriteRule ^/Bugs/db/ma/l([^/]+).html$ https://bugs.debian.org/cgi-bin/pkgreport.cgi?maintenc=$1
157
158    <IfModule mod_userdir.c>
159       UserDir disabled
160    </IfModule>
161
162    RedirectPermanent /devel/todo/ /devel/wnpp/help_requested_bypop
163    RedirectPermanent /doc/FAQ /doc/manuals/debian-faq
164    RedirectPermanent /doc/manuals/debian-fr-howto /doc/manuals/fr/debian-fr-howto
165    RedirectPermanent /doc/manuals/reference /doc/manuals/debian-reference
166    RedirectPermanent /doc/packaging-manuals/developers-reference /doc/manuals/developers-reference
167    RedirectPermanent /doc/packaging-manuals/packaging-tutorial /doc/manuals/packaging-tutorial
168    RedirectPermanent /doc/prospective-packages /devel/wnpp/
169    RedirectPermanent /devel/maintainer_contacts /intro/organization
170    RedirectPermanent /devel/debian-installer/gtk-frontend https://wiki.debian.org/DebianInstaller/GUI
171    RedirectPermanent /zh/ /international/Chinese/
172    RedirectPermanent /chinese/ /international/Chinese/
173    RedirectPermanent /devel/help /devel/join/
174    RedirectPermanent /distrib/books /doc/books
175    RedirectPermanent /distrib/floppyinst /distrib/netinst
176    RedirectPermanent /distrib/netboot /distrib/netinst
177    RedirectPermanent /distrib/vendors /CD/vendors/
178    RedirectPermanent /distrib/cd /CD/
179    RedirectPermanent /distrib/cdinfo /CD/vendors/info
180    RedirectPermanent /related_links /misc/related_links
181    RedirectPermanent /ports/laptops /misc/laptops/
182    RedirectPermanent /misc/README.mirrors /mirror/list
183    RedirectPermanent /misc/README.non-US /mirror/list.non-US
184    RedirectPermanent /intl /international
185    RedirectPermanent /ports/armel  /ports/arm
186    RedirectPermanent /ports/armhf  /ports/arm
187    RedirectPermanent /ports/arm64  /ports/arm
188    RedirectPermanent /ports/mipsel /ports/mips
189    RedirectPermanent /ports/mips64el /ports/mips
190    RedirectPermanent /ports/kfreebsd-amd64 /ports/kfreebsd-gnu
191    RedirectPermanent /ports/kfreebsd-i386  /ports/kfreebsd-gnu
192    RedirectPermanent /ports/sparc64 /ports/sparc
193    RedirectPermanent /ports/s390x   /ports/s390
194    RedirectPermanent /ports/ppc64   /ports/powerpc
195    RedirectPermanent /ports/ppc64el   /ports/powerpc
196    RedirectPermanent /ports/powerpcspe   /ports/powerpc
197    RedirectPermanent /ports/riscv64   https://wiki.debian.org/RISC-V
198    RedirectPermanent /ports/x32   https://wiki.debian.org/X32Port
199    RedirectPermanent /ports/sh4   https://wiki.debian.org/SH4
200    RedirectPermanent /mirror/official_sponsors /mirror/sponsors
201    RedirectPermanent /mirror/official /mirror/list
202    RedirectPermanent /mirror/mirrors_full.html /mirror/list-full.html
203    RedirectPermanent /mirrors /mirror
204    RedirectPermanent /News/project /News/weekly
205    RedirectPermanent /releases/2.0 /releases/hamm
206    RedirectPermanent /releases/2.1 /releases/slink
207    RedirectPermanent /releases/2.2 /releases/potato
208    RedirectPermanent /releases/3.0 /releases/woody
209    RedirectPermanent /releases/3.1 /releases/sarge
210    RedirectPermanent /releases/4.0 /releases/etch
211    RedirectPermanent /releases/5.0 /releases/lenny
212    RedirectPermanent /releases/6.0 /releases/squeeze
213    RedirectPermanent /releases/7 /releases/wheezy
214    RedirectPermanent /releases/8 /releases/jessie
215    RedirectPermanent /releases/9 /releases/stretch
216    RedirectPermanent /releases/10 /releases/buster
217    RedirectPermanent /releases/unstable /releases/sid
218    RedirectPermanent /support/ /support
219
220 # Upper-case URLs were a bad idea
221    RedirectPermanent /bugs /Bugs
222    RedirectPermanent /news /News
223    RedirectPermanent /mailinglists /MailingLists
224    RedirectPermanent /cd /CD
225
226    RewriteRule ^/ports/freebsd(.*) /ports/kfreebsd-gnu/ [R=301]
227    RewriteRule ^/devel/debian-installer/report-template(.*) /releases/stable/i386/ch05s04.html#submit-bug [NE,R=301]
228    RewriteRule ^/devel/debian-installer/hooks(.*) https://d-i.alioth.debian.org/doc/internals/apb.html [R=301]
229    RewriteRule ^/doc/packaging-manuals/mime-policy(.*) /doc/debian-policy/ch-opersys.html#s-mime [NE,R=302]
230
231    RewriteRule ^/volatile/index.* - [S=1]
232    RewriteRule ^/volatile/.+ /volatile/ [L,R=301]
233    RewriteRule ^/devel/debian-volatile/.* /volatile/ [R=301]
234
235 # Offer a Redirect to DSA without knowing year #474730
236    RewriteMap dsa txt:<%= @wwwdo_document_root %>/security/map-dsa.txt
237    RewriteRule ^/security/dsa-(\d+)(\..*)? /security/${dsa:$1}$2 [R=301]
238
239 # Compatibility after SGML -> DocBook
240 # Debian Reference #624239
241    RewriteMap reference txt:<%= @wwwdo_document_root %>/doc/map-reference.txt
242    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/ch-support$1 !-f
243    RewriteRule ^/doc/manuals/debian-reference/ch-support(.*)  /support$1 [L,R=301]
244    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/${reference:$1}$2 -f
245    RewriteRule ^/doc/manuals/debian-reference/ch-([^\.]+)(.+) /doc/manuals/debian-reference/${reference:$1}$2 [L,R=301]
246    RewriteRule ^/doc/manuals/debian-reference/ch-([^\.]+)$    /doc/manuals/debian-reference/${reference:$1}     [R=301]
247    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/apa$1 -f
248    RewriteRule ^/doc/manuals/debian-reference/ap-appendix(.+) /doc/manuals/debian-reference/apa$1 [L,R=301]
249    RewriteRule ^/doc/manuals/debian-reference/ap-appendix$    /doc/manuals/debian-reference/apa     [R=301]
250    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/footnotes$1 !-f
251    RewriteRule ^/doc/manuals/debian-reference/footnotes(.+)   /doc/manuals/debian-reference/index$1 [L,R=301]
252    RewriteRule ^/doc/manuals/debian-reference/footnotes$      /doc/manuals/debian-reference/          [R=301]
253
254 # DevRef filename changes c2016
255    RedirectMatch permanent ^(/doc/manuals/developers-reference)/scope(\.[a-z]{2})?.html                 $1/ch01$2.html
256    RedirectMatch permanent ^(/doc/manuals/developers-reference)/new-maintainer(\.[a-z]{2})?.html        $1/ch02$2.html
257    RedirectMatch permanent ^(/doc/manuals/developers-reference)/developer-duties(\.[a-z]{2})?.html      $1/ch03$2.html
258    RedirectMatch permanent ^(/doc/manuals/developers-reference)/resources(\.[a-z]{2})?.html             $1/ch04$2.html
259    RedirectMatch permanent ^(/doc/manuals/developers-reference)/pkgs(\.[a-z]{2})?.html                  $1/ch05$2.html
260    RedirectMatch permanent ^(/doc/manuals/developers-reference)/best-pkging-practices(\.[a-z]{2})?.html $1/ch06$2.html
261    RedirectMatch permanent ^(/doc/manuals/developers-reference)/beyond-pkging(\.[a-z]{2})?.html         $1/ch07$2.html
262    RedirectMatch permanent ^(/doc/manuals/developers-reference)/l10n(\.[a-z]{2})?.html                  $1/ch08$2.html
263    RedirectMatch permanent ^(/doc/manuals/developers-reference)/tools(\.[a-z]{2})?.html                 $1/apa$2.html
264
265 # New Maintainers' Guide
266    RewriteRule ^/doc/(manuals/)?maint-guide/ch-(.*) /doc/manuals/maint-guide/$2 [R=301]
267    RewriteRule ^/doc/(manuals/)?maint-guide/footnotes(.*) /doc/manuals/maint-guide/index$2 [R=301]
268
269 # Compatibility after Debian Policy changed to build with Sphinx (bug #877367)
270    RewriteRule ^/doc/debian-policy/footnotes.html(.*) /doc/debian-policy/ [R=301,L]
271
272 # Canonical place for manuals under /doc/manuals/
273    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/$1 -d
274    RewriteRule ^/doc/([^/]+)/?(.*)? /doc/manuals/$1/$2 [L,R=301]
275    RewriteRule ^/doc/manuals/?$ /doc/ [L,R=301]
276
277 # Relocation of blends pages
278    RewriteRule ^/devel/hamradio(.*)$ /blends/hamradio$1 [R=301,L]
279
280 # Relocation of derivatives pages
281    RewriteRule ^/misc/children-distros(?:\.html)?$ /derivatives/ [R=301,L]
282    RewriteRule ^/misc/children-distros(\.[^\.]+(?:\.html)?)$ /derivatives/index$1 [R=301,L]
283 </Macro>
284
285 <Macro common-www.d.o>
286    ServerName <%= @wwwdo_server_name %>
287
288    Use common-www.d.o-inner
289 </Macro>
290
291
292 <VirtualHost <%= @vhost_listen %> >
293    ErrorLog /var/log/apache2/www.debian.org-error.log
294    CustomLog /var/log/apache2/www.debian.org-access.log privacy
295
296    ServerName <%= @wwwdo_server_name %>
297    Redirect / https://<%= @wwwdo_server_name %>/
298 </VirtualHost>
299 <VirtualHost <%= @vhost_listen_443 %> >
300    ErrorLog /var/log/apache2/www.debian.org-error.log
301    CustomLog /var/log/apache2/www.debian.org-access.log privacyssl
302
303    Use common-www.d.o
304
305    Use common-debian-service-ssl <%= @wwwdo_server_name %>
306    Use common-ssl-HSTS
307 </VirtualHost>
308 <% if scope.function_onion_global_service_hostname([@wwwdo_server_name]) -%>
309 <VirtualHost <%= @vhost_listen %> >
310    ErrorLog /var/log/apache2/www.debian.org-error.log
311    CustomLog /var/log/apache2/www.debian.org-access.log privacy
312
313    ServerName <%= scope.function_onion_global_service_hostname([@wwwdo_server_name]) %>
314
315    Use common-www.d.o-inner
316 </VirtualHost>
317 <% end %>
318
319
320 <%- if @redirect_vhosts -%>
321 # www other
322 ###########
323 <VirtualHost <%= @vhost_listen %> >
324    Use common-www-other.d.o
325
326    ErrorLog /var/log/apache2/www-other.debian.org-error.log
327    CustomLog /var/log/apache2/www-other.debian.org-access.log privacy
328
329    Redirect permanent / https://www.debian.org/
330 </VirtualHost>
331 <VirtualHost <%= @vhost_listen_443 %> >
332    Use common-www-other.d.o
333
334    CustomLog /var/log/apache2/www-other-access.log privacyssl
335    ErrorLog /var/log/apache2/www-other-error.log
336
337    Redirect permanent / https://www.debian.org/
338
339    Use common-debian-service-ssl debian.org
340    Use common-ssl-HSTS
341 </VirtualHost>
342 <%- end -%>
343 # vim:set syn=apache: