Я еще не знаю, возможно ли это на apache, я провел огромное количество исследований, прежде чем приехать сюда. но:
У меня VirtualHost работает на **: 80 *, имя сервера - на somedomain.tld. Я хочу добиться, чтобы если клиент 10.2.1.4 обращается к somedomain.tld, клиенту будет предоставлен контент из DocumentRoot / var / www / pages-1 /. Затем, если 10.3.0. * Обращается к тому же somedomain.tld, клиент получит контент из DocumentRoot / var / www / pages-2 /. Есть ли какой-нибудь способ добиться этого в настоящее время?
Вы можете сделать это с помощью RewriteRule, которому предшествует RewriteCond, который проверяет remote_addr (помните, что для переменных используется%, а не $:
<VirtualHost *:80>
Servername somedomain.tld
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 10.2.1.4
RewriteRule ^(.*)$ /var/www/pages-1/$1
RewriteCond %{REMOTE_ADDR} 10.3.0.
RewriteRule ^(.*)$ /var/www/pages-2/$1
</VirtualHost>
Невозможно изменить корень документа, но вы можете переписать URL-адрес на основе IP-адреса клиента, что-то вроде ... (не проверено) ...
RewriteCond %{REMOTE_HOST} ^10\.3\.0\.
RewriteRule ^/(.*) /pages-2/$1 [P,L]
RewriteCond %{REMOTE_HOST} ^10\.2\.1\.4$
RewriteRule ^/(.*) /pages-1/$1 [P,L]
Хотя было бы проще использовать внешняя программа перезаписи если количество IP-адресов очень велико.