diff --git a/lib/strings.nix b/lib/strings.nix index efdc265465f..31b0f56e09b 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -34,6 +34,9 @@ rec { concatStringsSep = separator: list: concatStrings (intersperse separator list); + concatMapStringsSep = sep: f: list: concatStringsSep sep (map f list); + concatImapStringsSep = sep: f: list: concatStringsSep sep (lib.imap f list); + # Construct a Unix-style search path consisting of each `subDir" # directory of the given list of packages. For example, diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix index aa9aec87f0c..76c64f8cb29 100644 --- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix +++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix @@ -133,6 +133,7 @@ in RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d + ${concatMapStringsSep "\n" (u: "RewriteCond %{REQUEST_URI} !^${u.urlPath}") serverInfo.serverConfig.servedDirs} RewriteRule ${if config.enableUploads then "!^/images" else "^.*\$"