Switch mediawiki sites to letsencrypt certificates
[chef.git] / cookbooks / mediawiki / templates / default / apache.erb
1 # DO NOT EDIT - This file is being maintained by Chef
2 <% @ports.each do |port| -%>
3
4 <VirtualHost *:<%= port %>>
5   ServerName <%= @name %>
6 <% @aliases.each do |alias_name| -%>
7   ServerAlias <%= alias_name %>
8 <% end -%>
9
10   ServerAdmin webmaster@openstreetmap.org
11
12 <% if port == 443 -%>
13   SSLEngine on
14   SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
15   SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
16
17   CustomLog /var/log/apache2/<%= @name %>-secure-access.log combined
18   ErrorLog /var/log/apache2/<%= @name %>-secure-error.log
19 <% else -%>
20   CustomLog /var/log/apache2/<%= @name %>-access.log combined
21   ErrorLog /var/log/apache2/<%= @name %>-error.log
22 <% end -%>
23
24   DocumentRoot <%= @directory %>
25
26 <% if @ssl_enabled -%>
27   RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
28 <% end -%>
29
30   php_admin_value open_basedir <%= @directory %>/:/usr/share/php/:/tmp/
31   #php_admin_value disable_functions "exec,shell_exec,system,passthru,popen,proc_open"
32   php_value memory_limit 128M
33   php_value max_execution_time 240
34   php_value upload_max_filesize 70M
35   php_value post_max_size 100M
36
37   RewriteCond %{SERVER_NAME} !=<%= @name %>
38 <% if port == 443 -%>
39   RewriteRule ^/(.*)$ https://<%= @name %>/$1 [R=permanent]
40 <% else -%>
41   RewriteRule ^/(.*)$ http://<%= @name %>/$1 [R=permanent]
42 <% end -%>
43
44   RedirectMatch 301 ^/$                           /wiki/Main_Page
45
46   #Historical Compatibility Links
47   RedirectMatch 301 ^/index\.php$                 /w/index.php
48   RedirectMatch 301 ^/index\.php/(.*)$            /wiki/$1
49   RedirectMatch 301 ^/skins/(.*)$                 /w/skins/$1
50   RedirectMatch 301 ^/images/(.*)$                /w/images/$1
51   RedirectMatch 301 ^/api\.php$                   /w/api.php
52   RedirectMatch 301 ^/opensearch_desc\.php$       /w/opensearch_desc.php
53
54   Alias /wiki <%= @directory %>/w/index.php
55
56   #Support /pagename -> /wiki/pagename
57   RewriteEngine on
58   RewriteCond %{REQUEST_URI} !^/w/
59   RewriteCond %{REQUEST_URI} !^/wiki/
60   RewriteCond %{REQUEST_URI} !^/index\.php
61   RewriteCond %{REQUEST_URI} !^/skins/
62   RewriteCond %{REQUEST_URI} !^/images/
63   RewriteCond %{REQUEST_URI} !^/api\.php$
64   RewriteCond %{REQUEST_URI} !^/opensearch_desc\.php$
65   RewriteCond %{REQUEST_URI} !^/server-status
66   RewriteCond %{REQUEST_URI} !^/.well-known/
67   RewriteCond %{LA-U:REQUEST_FILENAME} !-f
68   RewriteCond %{LA-U:REQUEST_FILENAME} !-d
69   RewriteRule ^/(.*) /wiki/$1 [R,L]
70
71   <Directory <%= @directory %>>
72     Options -Indexes
73     Require all granted
74   </Directory>
75
76   <Directory <%= @directory %>/w/images/>
77     # No php execution in the upload area
78     php_admin_flag engine off
79     Options -ExecCGI -Includes -Indexes
80     AllowOverride None
81     AddType text/plain .html .htm .shtml
82 <% if @private -%>
83     Require all denied
84 <% end -%>
85   </Directory>
86
87   <Directory <%= @directory %>/w/images/thumb/>
88     RewriteEngine on
89
90     RewriteCond %{REQUEST_FILENAME} !-f
91     RewriteCond %{REQUEST_FILENAME} !-d
92     RewriteRule ^[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/page([0-9]+)-([0-9]+)px-.*$ /w/thumb.php?f=$1&page=$2&width=$3 [L,QSA,B]
93
94     RewriteCond %{REQUEST_FILENAME} !-f
95     RewriteCond %{REQUEST_FILENAME} !-d
96     RewriteRule ^archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/page([0-9]+)-([0-9]+)px-.*$ /w/thumb.php?f=$1&page=$2&width=$3&archived=1 [L,QSA,B]
97
98     RewriteCond %{REQUEST_FILENAME} !-f
99     RewriteCond %{REQUEST_FILENAME} !-d
100     RewriteRule ^[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /w/thumb.php?f=$1&width=$2 [L,QSA,B]
101
102     RewriteCond %{REQUEST_FILENAME} !-f
103     RewriteCond %{REQUEST_FILENAME} !-d
104     RewriteRule ^archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /w/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]
105   </Directory>
106
107   <Directory <%= @directory %>/w/maintenance/>
108     Require all denied
109   </Directory>
110
111   <Files <%= @directory %>/w/LocalSettings.php>
112     Require all denied
113   </Files>
114
115   <Directory <%= @directory %>/w/cache/>
116     Options -ExecCGI -Includes -Indexes
117     AllowOverride None
118     AddType text/plain .html .htm .shtml
119     php_admin_flag engine off
120   </Directory>
121
122   <Directory ~ "\.svn">
123     Require all denied
124   </Directory>
125
126   <Directory ~ "\.git">
127     Require all denied
128   </Directory>
129
130   <Files ~ "~$">
131     Require all denied
132   </Files>
133 </VirtualHost>
134 <% end -%>