www.do: stop doing permanent redirects
[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.nl
101    ServerAlias debian.nl
102
103    ServerAlias www.debian.com
104    ServerAlias debian.com
105
106    ServerAlias debian.us
107    ServerAlias www.debian.us
108
109    ServerAlias debian.gr
110    ServerAlias www.debian.gr
111
112    ServerAlias www.debian.es
113    ServerAlias debian.es
114
115    ServerAlias www.debian.at
116
117    DocumentRoot <%= @wwwdo_document_root %>/
118    LogFormat "0.0.0.0 - %u %{[%d/%b/%Y:00:00:00 %z]}t \"%r\" %>s %b \"%{Referer}i\" \"-\" %V" privacy+host
119    ErrorLog /var/log/apache2/www-other.debian.org-error.log
120    CustomLog /var/log/apache2/www-other.debian.org-access.log privacy+host
121 </Macro>
122
123 <Macro common-www.d.o-inner>
124    ServerAdmin webmaster@debian.org
125    DocumentRoot <%= @wwwdo_document_root %>/
126
127    # CacheNegotiatedDocs: By default, Apache sends Pragma: no-cache with each
128    # document that was negotiated on the basis of content. This asks proxy
129    # servers not to cache the document. Uncommenting the following line disables
130    # this behavior, and proxies will be allowed to cache the documents.
131    CacheNegotiatedDocs On
132
133 # Custom Error
134    ErrorDocument 404 /devel/website/errors/404
135    RewriteCond %{DOCUMENT_ROOT}/devel/website/errors/404.$2.html -f
136    RewriteRule ^/(?!devel/website/errors/)(.*/)?404\.(.+)\.html$ /devel/website/errors/404.$2.html [L]
137
138 # the joys of backwards compatibility
139    Redirect /Lists-Archives https://lists.debian.org
140    Redirect /search https://search.debian.org
141    Redirect /Packages https://packages.debian.org
142    Redirect /lintian https://lintian.debian.org
143
144    Redirect /SPI https://www.spi-inc.org
145 #   Redirect /OpenHardware http://www.openhardware.org
146    Redirect /OpenSource https://opensource.org
147    Redirect /Bugs/db/ix/pseudopackages.html /Bugs/pseudo-packages
148    RewriteEngine on
149    RewriteRule ^/Bugs/db/pa/l([^/]+).html$ https://bugs.debian.org/$1
150    RewriteRule ^/Bugs/db/[[:digit:]][[:digit:]]/([[:digit:]][[:digit:]][[:digit:]]+).html$ https://bugs.debian.org/$1
151    RewriteRule ^/Bugs/db/ma/l([^/]+).html$ https://bugs.debian.org/cgi-bin/pkgreport.cgi?maintenc=$1
152
153    <IfModule mod_userdir.c>
154       UserDir disabled
155    </IfModule>
156
157    Redirect /devel/todo/ /devel/wnpp/help_requested_bypop
158    Redirect /doc/FAQ /doc/manuals/debian-faq
159    Redirect /doc/manuals/debian-fr-howto /doc/manuals/fr/debian-fr-howto
160    Redirect /doc/manuals/reference /doc/manuals/debian-reference
161    Redirect /doc/packaging-manuals/developers-reference /doc/manuals/developers-reference
162    Redirect /doc/packaging-manuals/packaging-tutorial /doc/manuals/packaging-tutorial
163    Redirect /doc/prospective-packages /devel/wnpp/
164    Redirect /devel/maintainer_contacts /intro/organization
165    Redirect /devel/debian-installer/gtk-frontend https://wiki.debian.org/DebianInstaller/GUI
166    Redirect /zh/ /international/Chinese/
167    Redirect /chinese/ /international/Chinese/
168    Redirect /devel/help /devel/join/
169    Redirect /distrib/books /doc/books
170    Redirect /distrib/floppyinst /distrib/netinst
171    Redirect /distrib/netboot /distrib/netinst
172    Redirect /distrib/vendors /CD/vendors/
173    Redirect /distrib/cd /CD/
174    Redirect /distrib/cdinfo /CD/vendors/info
175    Redirect /related_links /misc/related_links
176    Redirect /ports/laptops /misc/laptops/
177    Redirect /misc/README.mirrors /mirror/list
178    Redirect /misc/README.non-US /mirror/list.non-US
179    Redirect /misc/awards /News/awards
180    Redirect /misc/bsd.license https://opensource.org/licenses/BSD-3-Clause
181    Redirect /misc/laptops https://wiki.debian.org/InstallingDebianOn
182    Redirect /misc/memberships /intro/organization#memberships
183    Redirect /misc/merchandise /events/merchandise
184    Redirect /intl /international
185    Redirect /ports/armel  /ports/arm
186    Redirect /ports/armhf  /ports/arm
187    Redirect /ports/arm64  /ports/arm
188    Redirect /ports/mipsel /ports/mips
189    Redirect /ports/mips64el /ports/mips
190    Redirect /ports/kfreebsd-amd64 /ports/kfreebsd-gnu
191    Redirect /ports/kfreebsd-i386  /ports/kfreebsd-gnu
192    Redirect /ports/sparc64 /ports/sparc
193    Redirect /ports/s390x   /ports/s390
194    Redirect /ports/ppc64   /ports/powerpc
195    Redirect /ports/ppc64el   /ports/powerpc
196    Redirect /ports/powerpcspe   /ports/powerpc
197    Redirect /ports/riscv64   https://wiki.debian.org/RISC-V
198    Redirect /ports/x32   https://wiki.debian.org/X32Port
199    Redirect /ports/sh4   https://wiki.debian.org/SH4
200    Redirect /mirror/official_sponsors /mirror/sponsors
201    Redirect /mirror/official /mirror/list
202    Redirect /mirror/mirrors_full.html /mirror/list-full.html
203    Redirect /mirrors /mirror
204    Redirect /News/project /News/weekly
205    Redirect /releases/2.0 /releases/hamm
206    Redirect /releases/2.1 /releases/slink
207    Redirect /releases/2.2 /releases/potato
208    Redirect /releases/3.0 /releases/woody
209    Redirect /releases/3.1 /releases/sarge
210    Redirect /releases/4.0 /releases/etch
211    Redirect /releases/5.0 /releases/lenny
212    Redirect /releases/6.0 /releases/squeeze
213    Redirect /releases/7 /releases/wheezy
214    Redirect /releases/8 /releases/jessie
215    Redirect /releases/9 /releases/stretch
216    Redirect /releases/10 /releases/buster
217    Redirect /releases/unstable /releases/sid
218    Redirect /support/ /support
219
220 # Upper-case URLs were a bad idea
221    Redirect /bugs /Bugs
222    Redirect /news /News
223    Redirect /mailinglists /MailingLists
224    Redirect /cd /CD
225
226    RewriteRule ^/ports/freebsd(.*) /ports/kfreebsd-gnu/ [R]
227    RewriteRule ^/devel/debian-installer/report-template(.*) /releases/stable/i386/ch05s04.html#submit-bug [NE,R]
228    RewriteRule ^/devel/debian-installer/hooks(.*) https://d-i.alioth.debian.org/doc/internals/apb.html [R]
229    RewriteRule ^/doc/packaging-manuals/mime-policy(.*) /doc/debian-policy/ch-opersys.html#s-mime [NE,R]
230
231    RewriteRule ^/volatile/index.* - [S=1]
232    RewriteRule ^/volatile/.+ /volatile/ [L,R]
233    RewriteRule ^/devel/debian-volatile/.* /volatile/ [R]
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]
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]
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]
246    RewriteRule ^/doc/manuals/debian-reference/ch-([^\.]+)$    /doc/manuals/debian-reference/${reference:$1}     [R]
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]
249    RewriteRule ^/doc/manuals/debian-reference/ap-appendix$    /doc/manuals/debian-reference/apa     [R]
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]
252    RewriteRule ^/doc/manuals/debian-reference/footnotes$      /doc/manuals/debian-reference/          [R]
253
254 # DevRef filename changes c2016
255    RedirectMatch ^(/doc/manuals/developers-reference)/scope(\.[a-z]{2})?.html                 $1/ch01$2.html
256    RedirectMatch ^(/doc/manuals/developers-reference)/new-maintainer(\.[a-z]{2})?.html        $1/ch02$2.html
257    RedirectMatch ^(/doc/manuals/developers-reference)/developer-duties(\.[a-z]{2})?.html      $1/ch03$2.html
258    RedirectMatch ^(/doc/manuals/developers-reference)/resources(\.[a-z]{2})?.html             $1/ch04$2.html
259    RedirectMatch ^(/doc/manuals/developers-reference)/pkgs(\.[a-z]{2})?.html                  $1/ch05$2.html
260    RedirectMatch ^(/doc/manuals/developers-reference)/best-pkging-practices(\.[a-z]{2})?.html $1/ch06$2.html
261    RedirectMatch ^(/doc/manuals/developers-reference)/beyond-pkging(\.[a-z]{2})?.html         $1/ch07$2.html
262    RedirectMatch ^(/doc/manuals/developers-reference)/l10n(\.[a-z]{2})?.html                  $1/ch08$2.html
263    RedirectMatch ^(/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]
267    RewriteRule ^/doc/(manuals/)?maint-guide/footnotes(.*) /doc/manuals/maint-guide/index$2 [R]
268
269 # Compatibility after Debian Policy changed to build with Sphinx (bug #877367)
270    RewriteRule ^/doc/debian-policy/footnotes.html(.*) /doc/debian-policy/ [R,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]
275    RewriteRule ^/doc/manuals/?$ /doc/ [L,R]
276
277 # Relocation of blends pages
278    RewriteRule ^/devel/hamradio(.*)$ /blends/hamradio$1 [R,L]
279
280 # Relocation of derivatives pages
281    RewriteRule ^/misc/children-distros(?:\.html)?$ /derivatives/ [R,L]
282    RewriteRule ^/misc/children-distros(\.[^\.]+(?:\.html)?)$ /derivatives/index$1 [R,L]
283
284 # Relocation of memberships information
285    RewriteRule ^/misc/memberships(?:\.html)?$ /intro/organization$1#memberships [R,L]
286    RewriteRule ^/misc/memberships(\.[^\.]+(?:\.html)?)$ /intro/organization$1#memberships [R,L]
287 </Macro>
288
289 <Macro common-www.d.o>
290    ServerName <%= @wwwdo_server_name %>
291
292    Use common-www.d.o-inner
293 </Macro>
294
295
296 <VirtualHost <%= @vhost_listen %> >
297    ErrorLog /var/log/apache2/www.debian.org-error.log
298    CustomLog /var/log/apache2/www.debian.org-access.log privacy
299
300    ServerName <%= @wwwdo_server_name %>
301    Redirect / https://<%= @wwwdo_server_name %>/
302 </VirtualHost>
303 <VirtualHost <%= @vhost_listen_443 %> >
304    ErrorLog /var/log/apache2/www.debian.org-error.log
305    CustomLog /var/log/apache2/www.debian.org-access.log privacyssl
306
307    Use common-www.d.o
308
309    Use common-debian-service-ssl <%= @wwwdo_server_name %>
310    Use common-ssl-HSTS
311 </VirtualHost>
312 <% if scope.function_onion_global_service_hostname([@wwwdo_server_name]) -%>
313 <VirtualHost <%= @vhost_listen %> >
314    ErrorLog /var/log/apache2/www.debian.org-error.log
315    CustomLog /var/log/apache2/www.debian.org-access.log privacy
316
317    ServerName <%= scope.function_onion_global_service_hostname([@wwwdo_server_name]) %>
318
319    Use common-www.d.o-inner
320 </VirtualHost>
321 <% end %>
322
323
324 <%- if @redirect_vhosts -%>
325 # www other
326 ###########
327 <VirtualHost <%= @vhost_listen %> >
328    Use common-www-other.d.o
329
330    ErrorLog /var/log/apache2/www-other.debian.org-error.log
331    CustomLog /var/log/apache2/www-other.debian.org-access.log privacy
332
333    Redirect / https://www.debian.org/
334 </VirtualHost>
335 <VirtualHost <%= @vhost_listen_443 %> >
336    Use common-www-other.d.o
337
338    CustomLog /var/log/apache2/www-other-access.log privacyssl
339    ErrorLog /var/log/apache2/www-other-error.log
340
341    # Legacy GPG versions (including 2.2.12 in buster/Debian 10) use the "direct method" instead
342    # of the "advanced method" which should be tried first according to the draft
343    # https://tools.ietf.org/html/draft-koch-openpgp-webkey-service
344    # also cf. RT#7828
345    Redirect /.well-known/openpgpkey/ https://openpgpkey.debian.org/.well-known/openpgpkey/debian.org/
346
347    Redirect / https://www.debian.org/
348
349    Use common-debian-service-ssl debian.org
350    Use common-ssl-HSTS
351 </VirtualHost>
352 <%- end -%>
353 # vim:set syn=apache: