index: release v1.18 with only altgr index linked
[sheet.git] / .htaccess
index db6552a955b52fab7fea72585fd55466bcfd142f..90f32b4dea33dea798eae4db36313137dd1e1ecd 100644 (file)
--- a/.htaccess
+++ b/.htaccess
@@ -1,33 +1,47 @@
-Options        -MultiViews
+Options        -MultiViews -Indexes
 DirectoryIndex index.plp
+DirectorySlash Off
+AddCharset     utf-8 .txt
 
 RewriteEngine  on
 RewriteBase    /
 
-# redirect from old vim-only subdomain
-RewriteCond %{HTTP_HOST}             ^vim?\.shiar\.\w+$
+# redirect from deprecated domain names
+RewriteCond %{HTTP_HOST}             ^vim?\.shiar\.\w+$       [OR]
+RewriteCond %{HTTP_HOST}             =sheet.shiar.net
 RewriteRule ^(vi(?=m$)|.*)           http://sheet.shiar.nl/$1 [R=301]
 
 # redirect old locations
-RewriteRule ^vim$                    /vi [R=301]
-RewriteRule ^cc$                     /countries [R=301]
+RewriteRule ^vim$                    /vi                      [R=301]
+RewriteRule ^cc$                     /countries               [R=301]
+
+# forward to https protocol if requested
+RewriteCond %{HTTPS}                          =off
+RewriteCond %{HTTP:Upgrade-Insecure-Requests} =1
+RewriteCond %{HTTP_HOST}                      =sheet.shiar.nl
+RewriteRule (.*)                     https://%{HTTP_HOST}/$1  [L]
 
 # serve vim commands when requesting /digraphs.ex as well
-RewriteRule    ^(digraphs)\.ex(/.*)?$ $1.vim$2
+RewriteRule ^(digraphs)\.ex(/.*)?$   $1.vim$2
 
 # add .plp if a file exists with .plp appended (topdir only)
-RewriteCond    %{REQUEST_FILENAME}.plp  -f
-RewriteRule    ^/*([^/]+)(.*)           $1.plp$2
+RewriteCond %{REQUEST_FILENAME}     !-f
+RewriteCond %{DOCUMENT_ROOT}/$1.plp  -f
+RewriteRule ^/*([^/]+)(.*)           $1.plp$2
 
-# compress html output if accepted by client
-<IfModule deflate_module>
-AddOutputFilterByType DEFLATE text/html
-</IfModule>
+# replace jpeg images by webp alternatives if supported
+RewriteCond %{HTTP_ACCEPT}           \bimage/webp
+RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
+RewriteRule (.*)\.jpg$               $1.webp
 
-# allow browsers to cache for upto a month
+# allow browsers to cache static assets for upto a month
 <IfModule headers_module>
-<FilesMatch "\.(?:css|js)$">
+<FilesMatch "\.(?:css|gif|png|jpg|webp|jxl|svg)$">
+Header set Cache-Control "max-age=2592000"
+</FilesMatch>
+<FilesMatch "\.(?:js|json)$">
 Header set Cache-Control "max-age=2592000"
+Header set Access-Control-Allow-Origin "*"
 </FilesMatch>
 </IfModule>