O que acabamos fazendo é o seguinte:
RewriteCond %{REMOTE_HOST} !A.B.C.(D|E)
RewriteCond %{HTTP_HOST}==%{HTTP_REFERER} !^(.*?)==https?:/// [NC]
RewriteCond %{HTTP_REFERER} !https?://referring.domain.com/ [NC]
RewriteRule ^ https://referring.domain.com/path/to/login/script [R,L]
O primeiro RewriteCond
(e várias outras linhas como ele) significa que os desenvolvedores e o cliente não estão restritos por essa verificação (como é realmente cansativo ter que ir até lá antes de ir ao nosso site).
O segundo RewriteCond
é um trabalho genial para verificar se o referenciador é igual ao Host:
no pedido. Isso se baseia no > answer to SO # 7398191: Verificação genérica do referenciador mod_rewrite - porque mod_rewrite
só faz interpolação variável na string de teste, você não pode ter uma leitura de linha
RewriteCond %{HTTP_HOST} !^https?://%{HTTP_REFERER}/ [NC]
porque simplesmente não faz essa verificação.
Aparentemente, "nunca" precisaremos permitir outros referenciadores. Se o fizéssemos, acho que eu teria que definir essa última RewriteCond
line para terminar [NC,OR]
e encadear algumas outras condições.
Tudo funcionando bem. Obrigado pela sua ajuda, todos!