diff --git a/data/web/inc/functions.inc.php b/data/web/inc/functions.inc.php index 2631f1214..bb2d35ea3 100644 --- a/data/web/inc/functions.inc.php +++ b/data/web/inc/functions.inc.php @@ -1115,11 +1115,15 @@ function is_valid_domain_name($domain_name, $options = array()) { // Convert domain name to ASCII for validation $domain_name = idn_to_ascii($domain_name, 0, INTL_IDNA_VARIANT_UTS46); - // Remove '*.' if wildcard subdomains are allowed - if (isset($options['allow_wildcard']) && - $options['allow_wildcard'] == true && - strpos($domain_name, '*.') === 0) { - $domain_name = substr($domain_name, 2); + if (isset($options['allow_wildcard']) && $options['allow_wildcard'] == true) { + // Remove '*.' if wildcard domains are allowed + if (strpos($domain_name, '*.') === 0) { + $domain_name = substr($domain_name, 2); + } + // Allow '*' as wildcard domain + if ($domain_name === "*") { + return true; + } } return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name)