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
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.
12 AllowOverride AuthConfig FileInfo
15 # Serve icons as image/x-icon
16 AddType image/x-icon .ico
18 # Serve RSS feeds as application/rss+xml
19 AddType application/rss+xml .rdf
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"
29 # FileEtag needs to be the same across mirrors (used for caching, ignore inode)
32 # language stuff, for web site translations
33 # for boot-floppies docs only: sk
35 AddLanguage en-us .en-us
36 AddLanguage en-gb .en-gb
61 AddLanguage pt-br .pt-br
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
75 DirectoryIndex maintenance index index.html index.shtml index.htm
82 ForceType application/pdf
90 <Macro common-www-other.d.o>
92 ServerAdmin webmaster@debian.org
94 ServerAlias www.debian.net
95 ServerAlias debian.net
97 ServerAlias www.debian.eu
100 ServerAlias www.debian.nl
101 ServerAlias debian.nl
103 ServerAlias www.debian.com
104 ServerAlias debian.com
106 ServerAlias debian.us
107 ServerAlias www.debian.us
109 ServerAlias debian.gr
110 ServerAlias www.debian.gr
112 ServerAlias www.debian.es
113 ServerAlias debian.es
115 ServerAlias www.debian.at
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
123 <Macro common-www.d.o-inner>
124 ServerAdmin webmaster@debian.org
125 DocumentRoot <%= @wwwdo_document_root %>/
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
133 # The UI for language selection in browsers is rarely used or known about
134 # by visitors so websites need to provide a way for visitors to influence
135 # content negotiation using the website itself in addition to the browser.
136 # Setting a cookie is the simplest option for us as the URLs don't change.
137 # The GDPR does not apply and to satisfy the EU cookie law we can include
138 # some explanatory text around the form that sets the cookie.
139 # The use of POST requests will ensure each cookie is only set explictly.
140 # When a cookie is set by the user, update it on every visit so it doesn't
141 # expire unless the user stops visiting the website for the cookie duration.
142 # Since Apache mod_rewrite cannot inspect POST data, we use URLs instead.
144 RewriteCond %{REQUEST_METHOD} ^POST$
145 RewriteRule /intro/cn/setlang/([a-z]{2}(?:-[a-z]{2})?)/(.*) /$2 [last,redirect,cookie=lang:$1:%{HTTP_HOST}:40320:/:secure:]
146 RewriteCond %{REQUEST_METHOD} ^POST$
147 RewriteRule /intro/cn/unsetlang/(.*) /$1 [last,redirect,cookie=lang:invalid:%{HTTP_HOST}:-1:/:secure:]
148 RewriteCond %{HTTP_COOKIE} /^lang=([a-z]{2}(?:-[a-z]{2})?)$/
149 RewriteRule . - [cookie=lang:%1:%{HTTP_HOST}:40320:/:secure:]
150 SetEnvIf Cookie "lang=(.+)" prefer-language=$1
151 Header append Vary cookie
154 ErrorDocument 404 /devel/website/errors/404
155 RewriteCond %{DOCUMENT_ROOT}/devel/website/errors/404.$2.html -f
156 RewriteRule ^/(?!devel/website/errors/)(.*/)?404\.(.+)\.html$ /devel/website/errors/404.$2.html [L]
158 # the joys of backwards compatibility
159 Redirect /Lists-Archives https://lists.debian.org
160 Redirect /search https://search.debian.org
161 Redirect /Packages https://packages.debian.org
162 Redirect /lintian https://lintian.debian.org
164 Redirect /SPI https://www.spi-inc.org
165 # Redirect /OpenHardware http://www.openhardware.org
166 Redirect /OpenSource https://opensource.org
167 Redirect /Bugs/db/ix/pseudopackages.html /Bugs/pseudo-packages
168 RewriteRule ^/Bugs/db/pa/l([^/]+).html$ https://bugs.debian.org/$1
169 RewriteRule ^/Bugs/db/[[:digit:]][[:digit:]]/([[:digit:]][[:digit:]][[:digit:]]+).html$ https://bugs.debian.org/$1
170 RewriteRule ^/Bugs/db/ma/l([^/]+).html$ https://bugs.debian.org/cgi-bin/pkgreport.cgi?maintenc=$1
172 <IfModule mod_userdir.c>
176 Redirect /devel/todo/ /devel/wnpp/help_requested_bypop
177 Redirect /doc/FAQ /doc/manuals/debian-faq
178 Redirect /doc/manuals/debian-fr-howto /doc/manuals/fr/debian-fr-howto
179 Redirect /doc/manuals/reference /doc/manuals/debian-reference
180 Redirect /doc/packaging-manuals/developers-reference /doc/manuals/developers-reference
181 Redirect /doc/packaging-manuals/packaging-tutorial /doc/manuals/packaging-tutorial
182 Redirect /doc/prospective-packages /devel/wnpp/
183 Redirect /devel/maintainer_contacts /intro/organization
184 Redirect /devel/debian-installer/gtk-frontend https://wiki.debian.org/DebianInstaller/GUI
185 Redirect /zh/ /international/Chinese/
186 Redirect /chinese/ /international/Chinese/
187 Redirect /devel/help /devel/join/
188 Redirect /distrib/books /doc/books
189 Redirect /distrib/floppyinst /distrib/netinst
190 Redirect /distrib/netboot /distrib/netinst
191 Redirect /distrib/vendors /CD/vendors/
192 Redirect /distrib/cd /CD/
193 Redirect /distrib/cdinfo /CD/vendors/info
194 Redirect /related_links /misc/related_links
195 Redirect /ports/laptops /misc/laptops/
196 Redirect /misc/README.mirrors /mirror/list
197 Redirect /misc/README.non-US /mirror/list.non-US
198 Redirect /misc/awards /News/awards
199 Redirect /misc/bsd.license https://opensource.org/licenses/BSD-3-Clause
200 Redirect /misc/laptops https://wiki.debian.org/InstallingDebianOn
201 Redirect /misc/memberships /intro/organization#memberships
202 Redirect /misc/merchandise /events/merchandise
203 Redirect /intl /international
204 Redirect /ports/armel /ports/arm
205 Redirect /ports/armhf /ports/arm
206 Redirect /ports/arm64 /ports/arm
207 Redirect /ports/mipsel /ports/mips
208 Redirect /ports/mips64el /ports/mips
209 Redirect /ports/kfreebsd-amd64 /ports/kfreebsd-gnu
210 Redirect /ports/kfreebsd-i386 /ports/kfreebsd-gnu
211 Redirect /ports/sparc64 /ports/sparc
212 Redirect /ports/s390x /ports/s390
213 Redirect /ports/ppc64 /ports/powerpc
214 Redirect /ports/ppc64el /ports/powerpc
215 Redirect /ports/powerpcspe /ports/powerpc
216 Redirect /ports/riscv64 https://wiki.debian.org/RISC-V
217 Redirect /ports/x32 https://wiki.debian.org/X32Port
218 Redirect /ports/sh4 https://wiki.debian.org/SH4
219 Redirect /mirror/official_sponsors /mirror/sponsors
220 Redirect /mirror/official /mirror/list
221 Redirect /mirror/mirrors_full.html /mirror/list-full.html
222 Redirect /mirrors /mirror
223 Redirect /News/project /News/weekly
224 Redirect /releases/2.0 /releases/hamm
225 Redirect /releases/2.1 /releases/slink
226 Redirect /releases/2.2 /releases/potato
227 Redirect /releases/3.0 /releases/woody
228 Redirect /releases/3.1 /releases/sarge
229 Redirect /releases/4.0 /releases/etch
230 Redirect /releases/5.0 /releases/lenny
231 Redirect /releases/6.0 /releases/squeeze
232 Redirect /releases/7 /releases/wheezy
233 Redirect /releases/8 /releases/jessie
234 Redirect /releases/9 /releases/stretch
235 Redirect /releases/10 /releases/buster
236 Redirect /releases/unstable /releases/sid
237 Redirect /support/ /support
239 # Upper-case URLs were a bad idea
242 Redirect /mailinglists /MailingLists
245 RewriteRule ^/ports/freebsd(.*) /ports/kfreebsd-gnu/ [R]
246 RewriteRule ^/devel/debian-installer/report-template(.*) /releases/stable/i386/ch05s04.html#submit-bug [NE,R]
247 RewriteRule ^/devel/debian-installer/hooks(.*) https://d-i.alioth.debian.org/doc/internals/apb.html [R]
248 RewriteRule ^/doc/packaging-manuals/mime-policy(.*) /doc/debian-policy/ch-opersys.html#s-mime [NE,R]
250 RewriteRule ^/volatile/index.* - [S=1]
251 RewriteRule ^/volatile/.+ /volatile/ [L,R]
252 RewriteRule ^/devel/debian-volatile/.* /volatile/ [R]
254 # Offer a Redirect to DSA without knowing year #474730
255 RewriteMap dsa txt:<%= @wwwdo_document_root %>/security/map-dsa.txt
256 RewriteRule ^/security/dsa-(\d+)(\..*)? /security/${dsa:$1}$2 [R]
258 # Compatibility after SGML -> DocBook
259 # Debian Reference #624239
260 RewriteMap reference txt:<%= @wwwdo_document_root %>/doc/map-reference.txt
261 RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/ch-support$1 !-f
262 RewriteRule ^/doc/manuals/debian-reference/ch-support(.*) /support$1 [L,R]
263 RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/${reference:$1}$2 -f
264 RewriteRule ^/doc/manuals/debian-reference/ch-([^\.]+)(.+) /doc/manuals/debian-reference/${reference:$1}$2 [L,R]
265 RewriteRule ^/doc/manuals/debian-reference/ch-([^\.]+)$ /doc/manuals/debian-reference/${reference:$1} [R]
266 RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/apa$1 -f
267 RewriteRule ^/doc/manuals/debian-reference/ap-appendix(.+) /doc/manuals/debian-reference/apa$1 [L,R]
268 RewriteRule ^/doc/manuals/debian-reference/ap-appendix$ /doc/manuals/debian-reference/apa [R]
269 RewriteCond %{DOCUMENT_ROOT}/doc/manuals/debian-reference/footnotes$1 !-f
270 RewriteRule ^/doc/manuals/debian-reference/footnotes(.+) /doc/manuals/debian-reference/index$1 [L,R]
271 RewriteRule ^/doc/manuals/debian-reference/footnotes$ /doc/manuals/debian-reference/ [R]
273 # DevRef filename changes c2016
274 RedirectMatch ^(/doc/manuals/developers-reference)/scope(\.[a-z]{2})?.html $1/ch01$2.html
275 RedirectMatch ^(/doc/manuals/developers-reference)/new-maintainer(\.[a-z]{2})?.html $1/ch02$2.html
276 RedirectMatch ^(/doc/manuals/developers-reference)/developer-duties(\.[a-z]{2})?.html $1/ch03$2.html
277 RedirectMatch ^(/doc/manuals/developers-reference)/resources(\.[a-z]{2})?.html $1/ch04$2.html
278 RedirectMatch ^(/doc/manuals/developers-reference)/pkgs(\.[a-z]{2})?.html $1/ch05$2.html
279 RedirectMatch ^(/doc/manuals/developers-reference)/best-pkging-practices(\.[a-z]{2})?.html $1/ch06$2.html
280 RedirectMatch ^(/doc/manuals/developers-reference)/beyond-pkging(\.[a-z]{2})?.html $1/ch07$2.html
281 RedirectMatch ^(/doc/manuals/developers-reference)/l10n(\.[a-z]{2})?.html $1/ch08$2.html
282 RedirectMatch ^(/doc/manuals/developers-reference)/tools(\.[a-z]{2})?.html $1/apa$2.html
284 # New Maintainers' Guide
285 RewriteRule ^/doc/(manuals/)?maint-guide/ch-(.*) /doc/manuals/maint-guide/$2 [R]
286 RewriteRule ^/doc/(manuals/)?maint-guide/footnotes(.*) /doc/manuals/maint-guide/index$2 [R]
288 # Compatibility after Debian Policy changed to build with Sphinx (bug #877367)
289 RewriteRule ^/doc/debian-policy/footnotes.html(.*) /doc/debian-policy/ [R,L]
291 # Canonical place for manuals under /doc/manuals/
292 RewriteCond %{DOCUMENT_ROOT}/doc/manuals/$1 -d
293 RewriteRule ^/doc/([^/]+)/?(.*)? /doc/manuals/$1/$2 [L,R]
294 RewriteRule ^/doc/manuals/?$ /doc/ [L,R]
296 # Relocation of blends pages
297 RewriteRule ^/devel/hamradio(.*)$ /blends/hamradio$1 [R,L]
299 # Relocation of derivatives pages
300 RewriteRule ^/misc/children-distros(?:\.html)?$ /derivatives/ [R,L]
301 RewriteRule ^/misc/children-distros(\.[^\.]+(?:\.html)?)$ /derivatives/index$1 [R,L]
303 # Relocation of memberships information
304 RewriteRule ^/misc/memberships(?:\.html)?$ /intro/organization$1#memberships [R,L]
305 RewriteRule ^/misc/memberships(\.[^\.]+(?:\.html)?)$ /intro/organization$1#memberships [R,L]
308 <Macro common-www.d.o>
309 ServerName <%= @wwwdo_server_name %>
311 Use common-www.d.o-inner
315 <VirtualHost <%= @vhost_listen %> >
316 ErrorLog /var/log/apache2/www.debian.org-error.log
317 CustomLog /var/log/apache2/www.debian.org-access.log privacy
319 ServerName <%= @wwwdo_server_name %>
320 Redirect / https://<%= @wwwdo_server_name %>/
322 <VirtualHost <%= @vhost_listen_443 %> >
323 ErrorLog /var/log/apache2/www.debian.org-error.log
324 CustomLog /var/log/apache2/www.debian.org-access.log privacyssl
328 Use common-debian-service-ssl <%= @wwwdo_server_name %>
331 <% if scope.function_onion_global_service_hostname([@wwwdo_server_name]) -%>
332 <VirtualHost <%= @vhost_listen %> >
333 ErrorLog /var/log/apache2/www.debian.org-error.log
334 CustomLog /var/log/apache2/www.debian.org-access.log privacy
336 ServerName <%= scope.function_onion_global_service_hostname([@wwwdo_server_name]) %>
338 Use common-www.d.o-inner
343 <%- if @redirect_vhosts -%>
346 <VirtualHost <%= @vhost_listen %> >
347 Use common-www-other.d.o
349 ErrorLog /var/log/apache2/www-other.debian.org-error.log
350 CustomLog /var/log/apache2/www-other.debian.org-access.log privacy
352 Redirect / https://www.debian.org/
354 <VirtualHost <%= @vhost_listen_443 %> >
355 Use common-www-other.d.o
357 CustomLog /var/log/apache2/www-other-access.log privacyssl
358 ErrorLog /var/log/apache2/www-other-error.log
360 # Legacy GPG versions (including 2.2.12 in buster/Debian 10) use the "direct method" instead
361 # of the "advanced method" which should be tried first according to the draft
362 # https://tools.ietf.org/html/draft-koch-openpgp-webkey-service
364 Redirect /.well-known/openpgpkey/ https://openpgpkey.debian.org/.well-known/openpgpkey/debian.org/
366 Redirect / https://www.debian.org/
368 Use common-debian-service-ssl debian.org
372 # vim:set syn=apache: