diff --git a/scripts/check_site.lua b/scripts/check_site.lua
index 0972fd70ccbb11c6a74c18886fc5a987de3bce2c..6d1603a0477fd9c5f8649b7fe3f482b44a59c892 100644
--- a/scripts/check_site.lua
+++ b/scripts/check_site.lua
@@ -63,19 +63,6 @@ local function merge(a, b)
 end
 
 
-function in_site(var)
-	return var
-end
-
-function in_domain(var)
-	return var
-end
-
-function this_domain()
-	return domain_code
-end
-
-
 local function path_to_string(path)
 	return table.concat(path, '/')
 end
@@ -118,6 +105,27 @@ local function var_error(path, val, msg)
 end
 
 
+function in_site(path)
+	if has_domains and loadpath(nil, domain, unpack(path)) ~= nil then
+		exit_error(domain_src(), '%s is allowed in site configuration only', path_to_string(path))
+	end
+
+	return path
+end
+
+function in_domain(path)
+	if has_domains and loadpath(nil, site, unpack(path)) ~= nil then
+		exit_error(site_src(), '%s is allowed in domain configuration only', path_to_string(path))
+	end
+
+	return path
+end
+
+function this_domain()
+	return domain_code
+end
+
+
 function extend(path, c)
 	if not path then return nil end