Вы хотите что-то вроде:
if (!preg_match('%your_domain.tld%i', $_SERVER['HTTP_REFERER']))
{
if (!preg_match('/en-us/i', $_SERVER['HTTP_ACCEPT_LANGUAGE']))
// .. do your stuff here.
}
Я изменил вашу проверку языка, чтобы использовать HTTP_ACCEPT_LANGUAGE, а также не учитывать регистр (Opera использует en-US, где Firefox и IE используют en-us в моих тестах).
Вы также можете использовать /^en-us/i
, если проверяете язык DEFAULT. Языковые строки могут содержать несколько языков, разделенных запятыми.