これがApacheで可能かどうかはまだわかりませんが、ここに来る前にかなりの量の調査を行いました。だが:
**:80 *で実行されているVirtualHost、somedomain.tldへのServerNameがあります。私が達成したいのは、クライアント10.2.1.4がsomedomain.tldにアクセスした場合、クライアントにはDocumentRoot/var/www/pages-1 /からコンテンツが提供されることです。次に、10.3.0。*が同じsomedomain.tldにアクセスすると、クライアントはDocumentRoot/var/www/pages-2 /からコンテンツを取得します。現在これを達成する方法はありますか?
これは、remote_addrをチェックするRewriteCondが前に付いたRewriteRuleを使用して行うことができます(変数には$ではなく%を使用することを忘れないでください:
<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>
ドキュメントルートを変更することはできませんが、クライアントIPに基づいてURLを書き換えることはできます。たとえば...(テストされていません)...
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アドレスの数が非常に多い場合は、 外部書き換えプログラム を使用する方が簡単かもしれませんが。