私が達成しようとしているのは:
1. A person, with IP 192.168.1.5 loads my webserver (192.168.1.2) and reaches htdocs/
2. Another person, with ip 192.168.1.6 does the same request, and reaches htdocs/folder/
可能であれば、ポート80のリクエストのみに固執したいと思います。
私は現在セットアップを使用しています:
<LocationMatch "/">
Order deny,allow
Deny from all
Allow from ::1 127.0.0.0/8 localhost 192.168.1.5
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
<VirtualHost 192.168.1.2:80>
ServerAdmin frederik@*.dk
DocumentRoot "/XAMPP/htdocs/"
ServerName 192.168.1.2
ErrorLog "logs/lan-error.log"
CustomLog "logs/lan-access.log" combined
</VirtualHost>
他のすべてのユーザーがフォルダを表示できるようにしたいと思います。そして、クライアントIPに応じて、別のDocumentRootを設定します。
(条件付きDocumentRoot
を使用して)思い描いている方法でそれを実行できるとは思わない。ただし、VirutalHost
宣言、またはドキュメントルートの.htaccess
ファイルに以下を追加することにより、Apache Rewritesで同じことを実現できます。
RewriteEngine On
RewriteCond %{REMOTE_Host} !^192\.168\.1\.5
RewriteCond %{REQUEST_URI} !^/blog/?
RewriteCond %{REQUEST_URI} /(.*)$
RewriteRule (.*) /blog [R=301,L]
基本的に、ユーザーのIPが自分のIPアドレスではなく、/blog
フォルダー内の何かを要求していない場合、ユーザーは/blog
フォルダーにリダイレクトします。 IPアドレスの場合、または/blog
フォルダー内の何かを要求している場合、リダイレクトは発生しません。