У меня есть следующие правила для перенаправления китайских пользователей на версию сайта на китайском языке:
RewriteCond %{HTTP:Accept-Language} ^zh [NC]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://ch.example.com/$1 [L,R=301]
RewriteCond %{HTTP:Accept-Language} ^zh [NC]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://ch.example.com/$1 [L,R=301]
Это прекрасно работает.
Однако есть ссылка, которая должна вернуть их на англоязычную версию сайта, которая является обычным доменом (www.example.com).
Но это просто перенаправляет их обратно на китайский сайт, потому что это соответствует правилам. Поэтому мне нужно сделать так, чтобы вышеуказанные правила срабатывали ТОЛЬКО, если реферер НЕ является ch.example.com.
Я пробовал что-то вроде этого:
RewriteCond %{HTTP:Accept-Language} ^zh [NC]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http?://ch\.example\.com/ [nc]
RewriteRule ^(.*)$ http://ch.example.com/$1 [L,R=301]
Но это не работает.