If you have a custom module you can use hook_views_query_alter. You basically pick out the "where" clause that's almost doing what you want it to and override it with your custom criteria.
function [custom module name]_views_query_alter(&$view, &$query) {
// pick out the right View by its name
if($view->name == "[your View's machine name]"){
// drupal_set_message(print_r($query->where, 1)); // Uncomment to see "where" array
// Get domain.
$host = preg_match('/[^.]+\.[^.]+$/', $_SERVER['HTTP_HOST'], $hit);
$host = $hit[0];
// Change the taxonomy term dependent on host
if ($host == 'example1.com'){
$query->where[0]['clauses'][2] = "(term_node_value_1.tid = 45)";
} elseif ($host == 'example2.com'){
$query->where[0]['clauses'][2] = "(term_node_value_1.tid = 115)";
}
}
}
You'll have to examine the $query object to determine which clause to override and the names of the variables involved - uncomment the drupal_set_message line to see it. This technique allows you to do all sorts of tricky exceptions that wouldn't be possible with Views alone. Clear your cache after you put this code in your module.