Rewrite URL to Debian memberships
[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    RedirectPermanent /Lists-Archives https://lists.debian.org
140    RedirectPermanent /search https://search.debian.org
141    RedirectPermanent /Packages https://packages.debian.org
142    RedirectPermanent /lintian https://lintian.debian.org
143
144    RedirectPermanent /SPI https://www.spi-inc.org
145 #   RedirectPermanent /OpenHardware http://www.openhardware.org
146    RedirectPermanent /OpenSource https://opensource.org
147    RedirectPermanent /misc/bsd.license https://opensource.org/licenses/BSD-3-Clause
148
149    RedirectPermanent /Bugs/db/ix/pseudopackages.html /Bugs/pseudo-packages
150    RewriteEngine on
151    RewriteRule ^/Bugs/db/pa/l([^/]+).html$ https://bugs.debian.org/$1
152    RewriteRule ^/Bugs/db/[[:digit:]][[:digit:]]/([[:digit:]][[:digit:]][[:digit:]]+).html$ https://bugs.debian.org/$1
153    RewriteRule ^/Bugs/db/ma/l([^/]+).html$ https://bugs.debian.org/cgi-bin/pkgreport.cgi?maintenc=$1
154
155    <IfModule mod_userdir.c>
156       UserDir disabled
157    </IfModule>
158
159    RedirectPermanent /devel/todo/ /devel/wnpp/help_requested_bypop
160    RedirectPermanent /doc/FAQ /doc/manuals/debian-faq
161    RedirectPermanent /doc/manuals/debian-fr-howto /doc/manuals/fr/debian-fr-howto
162    RedirectPermanent /doc/manuals/reference /doc/manuals/debian-reference
163    RedirectPermanent /doc/packaging-manuals/developers-reference /doc/manuals/developers-reference
164    RedirectPermanent /doc/packaging-manuals/packaging-tutorial /doc/manuals/packaging-tutorial
165    RedirectPermanent /doc/prospective-packages /devel/wnpp/
166    RedirectPermanent /devel/maintainer_contacts /intro/organization
167    RedirectPermanent /devel/debian-installer/gtk-frontend https://wiki.debian.org/DebianInstaller/GUI
168    RedirectPermanent /zh/ /international/Chinese/
169    RedirectPermanent /chinese/ /international/Chinese/
170    RedirectPermanent /devel/help /devel/join/
171    RedirectPermanent /distrib/books /doc/books
172    RedirectPermanent /distrib/floppyinst /distrib/netinst
173    RedirectPermanent /distrib/netboot /distrib/netinst
174    RedirectPermanent /distrib/vendors /CD/vendors/
175    RedirectPermanent /distrib/cd /CD/
176    RedirectPermanent /distrib/cdinfo /CD/vendors/info
177    RedirectPermanent /related_links /misc/related_links
178    RedirectPermanent /ports/laptops /misc/laptops/
179    RedirectPermanent /misc/README.mirrors /mirror/list
180    RedirectPermanent /misc/README.non-US /mirror/list.non-US
181    RedirectPermanent /intl /international
182    RedirectPermanent /ports/armel  /ports/arm
183    RedirectPermanent /ports/armhf  /ports/arm
184    RedirectPermanent /ports/arm64  /ports/arm
185    RedirectPermanent /ports/mipsel /ports/mips
186    RedirectPermanent /ports/mips64el /ports/mips
187    RedirectPermanent /ports/kfreebsd-amd64 /ports/kfreebsd-gnu
188    RedirectPermanent /ports/kfreebsd-i386  /ports/kfreebsd-gnu
189    RedirectPermanent /ports/sparc64 /ports/sparc
190    RedirectPermanent /ports/s390x   /ports/s390
191    RedirectPermanent /ports/ppc64   /ports/powerpc
192    RedirectPermanent /ports/ppc64el   /ports/powerpc
193    RedirectPermanent /ports/powerpcspe   /ports/powerpc
194    Redirect /ports/riscv64   https://wiki.debian.org/RISC-V
195    Redirect /ports/x32   https://wiki.debian.org/X32Port
196    Redirect /ports/sh4   https://wiki.debian.org/SH4
197    RedirectPermanent /mirror/official_sponsors /mirror/sponsors
198    RedirectPermanent /mirror/official /mirror/list
199    RedirectPermanent /mirror/mirrors_full.html /mirror/list-full.html
200    RedirectPermanent /mirrors /mirror
201    RedirectPermanent /News/project /News/weekly
202    RedirectPermanent /releases/2.0 /releases/hamm
203    RedirectPermanent /releases/2.1 /releases/slink
204    RedirectPermanent /releases/2.2 /releases/potato
205    RedirectPermanent /releases/3.0 /releases/woody
206    RedirectPermanent /releases/3.1 /releases/sarge
207    RedirectPermanent /releases/4.0 /releases/etch
208    RedirectPermanent /releases/5.0 /releases/lenny
209    RedirectPermanent /releases/6.0 /releases/squeeze
210    RedirectPermanent /releases/7 /releases/wheezy
211    RedirectPermanent /releases/8 /releases/jessie
212    RedirectPermanent /releases/9 /releases/stretch
213    RedirectPermanent /releases/10 /releases/buster
214    RedirectPermanent /releases/unstable /releases/sid
215    RedirectPermanent /support/ /support
216
217 # Upper-case URLs were a bad idea
218    RedirectPermanent /bugs /Bugs
219    RedirectPermanent /news /News
220    RedirectPermanent /mailinglists /MailingLists
221    RedirectPermanent /cd /CD
222
223    RewriteRule ^/ports/freebsd(.*) /ports/kfreebsd-gnu/ [R=301]
224    RewriteRule ^/devel/debian-installer/report-template(.*) /releases/stable/i386/ch05s04.html#submit-bug [NE,R=301]
225    RewriteRule ^/devel/debian-installer/hooks(.*) https://d-i.alioth.debian.org/doc/internals/apb.html [R=301]
226    RewriteRule ^/doc/packaging-manuals/mime-policy(.*) /doc/debian-policy/ch-opersys.html#s-mime [NE,R=302]
227
228    RewriteRule ^/volatile/index.* - [S=1]
229    RewriteRule ^/volatile/.+ /volatile/ [L,R=301]
230    RewriteRule ^/devel/debian-volatile/.* /volatile/ [R=301]
231
232 # Offer a Redirect to DSA without knowing year #474730
233    RewriteMap dsa txt:<%= @wwwdo_document_root %>/security/map-dsa.txt
234    RewriteRule ^/security/dsa-(\d+)(\..*)? /security/${dsa:$1}$2 [R=301]
235
236 # Compatibility after SGML -> DocBook
237 # Debian Reference #624239
238    RewriteMap reference txt:<%= @wwwdo_document_root %>/doc/map-reference.txt
239    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/ch-support$1 !-f
240    RewriteRule ^/doc/manuals/debian-reference/ch-support(.*)  /support$1 [L,R=301]
241    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/${reference:$1}$2 -f
242    RewriteRule ^/doc/manuals/debian-reference/ch-([^\.]+)(.+) /doc/manuals/debian-reference/${reference:$1}$2 [L,R=301]
243    RewriteRule ^/doc/manuals/debian-reference/ch-([^\.]+)$    /doc/manuals/debian-reference/${reference:$1}     [R=301]
244    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/apa$1 -f
245    RewriteRule ^/doc/manuals/debian-reference/ap-appendix(.+) /doc/manuals/debian-reference/apa$1 [L,R=301]
246    RewriteRule ^/doc/manuals/debian-reference/ap-appendix$    /doc/manuals/debian-reference/apa     [R=301]
247    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/footnotes$1 !-f
248    RewriteRule ^/doc/manuals/debian-reference/footnotes(.+)   /doc/manuals/debian-reference/index$1 [L,R=301]
249    RewriteRule ^/doc/manuals/debian-reference/footnotes$      /doc/manuals/debian-reference/          [R=301]
250
251 # DevRef filename changes c2016
252    RedirectMatch permanent ^(/doc/manuals/developers-reference)/scope(\.[a-z]{2})?.html                 $1/ch01$2.html
253    RedirectMatch permanent ^(/doc/manuals/developers-reference)/new-maintainer(\.[a-z]{2})?.html        $1/ch02$2.html
254    RedirectMatch permanent ^(/doc/manuals/developers-reference)/developer-duties(\.[a-z]{2})?.html      $1/ch03$2.html
255    RedirectMatch permanent ^(/doc/manuals/developers-reference)/resources(\.[a-z]{2})?.html             $1/ch04$2.html
256    RedirectMatch permanent ^(/doc/manuals/developers-reference)/pkgs(\.[a-z]{2})?.html                  $1/ch05$2.html
257    RedirectMatch permanent ^(/doc/manuals/developers-reference)/best-pkging-practices(\.[a-z]{2})?.html $1/ch06$2.html
258    RedirectMatch permanent ^(/doc/manuals/developers-reference)/beyond-pkging(\.[a-z]{2})?.html         $1/ch07$2.html
259    RedirectMatch permanent ^(/doc/manuals/developers-reference)/l10n(\.[a-z]{2})?.html                  $1/ch08$2.html
260    RedirectMatch permanent ^(/doc/manuals/developers-reference)/tools(\.[a-z]{2})?.html                 $1/apa$2.html
261
262 # New Maintainers' Guide
263    RewriteRule ^/doc/(manuals/)?maint-guide/ch-(.*) /doc/manuals/maint-guide/$2 [R=301]
264    RewriteRule ^/doc/(manuals/)?maint-guide/footnotes(.*) /doc/manuals/maint-guide/index$2 [R=301]
265
266 # Compatibility after Debian Policy changed to build with Sphinx (bug #877367)
267    RewriteRule ^/doc/debian-policy/footnotes.html(.*) /doc/debian-policy/ [R=301,L]
268
269 # Canonical place for manuals under /doc/manuals/
270    RewriteCond %{DOCUMENT_ROOT}/doc/manuals/$1 -d
271    RewriteRule ^/doc/([^/]+)/?(.*)? /doc/manuals/$1/$2 [L,R=301]
272    RewriteRule ^/doc/manuals/?$ /doc/ [L,R=301]
273
274 # Relocation of blends pages
275    RewriteRule ^/devel/hamradio(.*)$ /blends/hamradio$1 [R=301,L]
276
277 # Relocation of derivatives pages
278    RewriteRule ^/misc/children-distros(?:\.html)?$ /derivatives/ [R=301,L]
279    RewriteRule ^/misc/children-distros(\.[^\.]+(?:\.html)?)$ /derivatives/index$1 [R=301,L]
280
281 # Relocation of memberships information
282    RewriteRule ^/misc/memberships(?:\.html)?$ /intro/organization$1#memberships [R=301,L]
283    RewriteRule ^/misc/memberships(\.[^\.]+(?:\.html)?)$ /intro/organization$1#memberships [R=301,L]
284 </Macro>
285
286 <Macro common-www.d.o>
287    ServerName <%= @wwwdo_server_name %>
288
289    Use common-www.d.o-inner
290 </Macro>
291
292
293 <VirtualHost <%= @vhost_listen %> >
294    ErrorLog /var/log/apache2/www.debian.org-error.log
295    CustomLog /var/log/apache2/www.debian.org-access.log privacy
296
297    ServerName <%= @wwwdo_server_name %>
298    Redirect / https://<%= @wwwdo_server_name %>/
299 </VirtualHost>
300 <VirtualHost <%= @vhost_listen_443 %> >
301    ErrorLog /var/log/apache2/www.debian.org-error.log
302    CustomLog /var/log/apache2/www.debian.org-access.log privacyssl
303
304    Use common-www.d.o
305
306    Use common-debian-service-ssl <%= @wwwdo_server_name %>
307    Use common-ssl-HSTS
308 </VirtualHost>
309 <% if scope.function_onion_global_service_hostname([@wwwdo_server_name]) -%>
310 <VirtualHost <%= @vhost_listen %> >
311    ErrorLog /var/log/apache2/www.debian.org-error.log
312    CustomLog /var/log/apache2/www.debian.org-access.log privacy
313
314    ServerName <%= scope.function_onion_global_service_hostname([@wwwdo_server_name]) %>
315
316    Use common-www.d.o-inner
317 </VirtualHost>
318 <% end %>
319
320
321 <%- if @redirect_vhosts -%>
322 # www other
323 ###########
324 <VirtualHost <%= @vhost_listen %> >
325    Use common-www-other.d.o
326
327    ErrorLog /var/log/apache2/www-other.debian.org-error.log
328    CustomLog /var/log/apache2/www-other.debian.org-access.log privacy
329
330    Redirect permanent / https://www.debian.org/
331 </VirtualHost>
332 <VirtualHost <%= @vhost_listen_443 %> >
333    Use common-www-other.d.o
334
335    CustomLog /var/log/apache2/www-other-access.log privacyssl
336    ErrorLog /var/log/apache2/www-other-error.log
337
338    Redirect permanent / https://www.debian.org/
339
340    Use common-debian-service-ssl debian.org
341    Use common-ssl-HSTS
342 </VirtualHost>
343 <%- end -%>
344 # vim:set syn=apache: