Você pode fazer isso usando o mod_rewrite, que permite que você verifique o host através do qual o site está sendo acessado. Tente o seguinte, na configuração do seu servidor (ou <Directory> section ou .htaccess file):
RewriteEngine On
RewriteCond %{HTTP_HOST} =example1.com [NC]
RewriteRule ^/?login$ - [R=404,L]
O item acima exibe um 404 Not Found se você solicitar example1.com/login , mas não fará nada se solicitar example2.com/login (a solicitação simplesmente será permitida).
O prefixo = no RewriteCond CondPattern faz dele uma comparação lexicográfica exata, não uma regex, então não é necessário escapar do ponto nem usar âncoras .
Para servir um Forbidden 403, você pode alterar os sinalizadores no RewriteRule , por exemplo:
RewriteRule ^/?login$ - [F]
<Location /login> Order Deny,Allow Deny from example1.com Allow from example2.com </Location>It disables
/loginfrom bothexample1.comandexample2.com.
Estou bastante curioso ... isso, aparentemente, permite acesso a todos, não negá-lo? A diretiva Deny from ... nega acesso ao usuário de example1.com (por meio de pesquisa inversa de DNS no endereço IP remoto), não o usuário que está acessando o example1.com host. Nem as diretivas Deny ou Allow devem corresponder, por isso, deve ser Permitir . (?)
...how do i add multiple rewrite conditions for the same RewriteCond?
UPDATE: Observe que RewriteCond diretivas (ou seja, condições ) se aplicam à diretiva RewriteRule a seguir. Continuando com o exemplo acima, se você quiser bloquear vários URLS (por exemplo, /login , /demo e /test ) para example1.com , então você pode combinar todos eles no padrão RewriteRule . Por exemplo:
RewriteCond %{HTTP_HOST} =example1.com [NC]
RewriteRule ^/?(login|demo|test)$ - [R=404,L]
Está tudo bem neste caso, pois os URLs são limitados e todos muito curtos. Como alternativa, você pode criar uma condição para cada URL e usar o sinalizador OR . Por exemplo:
RewriteCond %{HTTP_HOST} =example1.com [NC]
RewriteCond %{REQUEST_URI} ^/login$ [OR]
RewriteCond %{REQUEST_URI} ^/demo$ [OR]
RewriteCond %{REQUEST_URI} ^/test$
RewriteRule ^ - [R=404,L]
Isso indica ... que todos os URLs em que o HTTP_HOST é example1.com e o URL é /login ou /demo ou /test , em seguida, veicula o documento de erro 404. No entanto, o primeiro exemplo (usando o padrão RewriteRule ) seria mais eficiente, pois é o que é processado primeiro.