From 2dade15d83b9d0b105fcb35c9edd62bfeceece16 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 13 Dec 2013 04:04:41 -0500
Subject: [PATCH] Fix security rules in .htaccess preventing access to base URL without the ending slash (#1489477)

---
 CHANGELOG |    1 +
 .htaccess |   26 ++++++++------------------
 2 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/.htaccess b/.htaccess
index 43ab5b0..0342e08 100644
--- a/.htaccess
+++ b/.htaccess
@@ -27,25 +27,15 @@
 RewriteEngine On
 RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico
 
-# security rules
-RewriteRule ^/?(\.git|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
-RewriteRule /?(README(.md)?|composer\.json-dist|composer\.json|package\.xml)$ - [F]
+# security rules:
+# - deny access to files not containing a dot or starting with a dot
+#   in all locations except installer directory
+RewriteRule ^(?!installer)(\.?[^\.]+)$ - [F]
+# - deny access to some locations
+RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
+# - deny access to some documentation files
+RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml)$ - [F]
 </IfModule>
-
-# deny access to all files not containing a "." (dot)
-# to block access to different README, Changelog, INSTALL, etc.
-# files of various skins and plugins.
-<FilesMatch "^[^\.]+$">
-    # Apache 2.4
-    <IfModule mod_authz_core.c>
-        Require all denied
-    </IfModule>
-    # Apache 2.2
-    <IfModule !mod_authz_core.c>
-        Order Allow,Deny
-        Deny from all
-    </IfModule>
-</FilesMatch>
 
 <IfModule mod_deflate.c>
 SetOutputFilter DEFLATE
diff --git a/CHANGELOG b/CHANGELOG
index c5574b1..394d1ac 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix security rules in .htaccess preventing access to base URL without the ending slash (#1489477)
 - Fix regression where only first new folder was placed in correct place on the list (#1489472)
 - Fix issue where children of selected and collapsed thread were skipped on various actions (#1489457)
 - Fix issue where groups were not deleted when "Replace entire addressbook" option on contacts import was used (#1489420)

--
Gitblit v1.9.1