Mobile app version of vmapp.org
Login or Join
Kevin317

: IP-based redirection using mod_rewrite I'm running a small VPN server where each user has his own static IP. I set up an Apache server in order to host files for each of them and instead of

@Kevin317

Posted in: #Apache2 #Htaccess #ModRewrite #Redirects #Vpn

I'm running a small VPN server where each user has his own static IP.
I set up an Apache server in order to host files for each of them and instead of using a new registration system, I wanted to take advantage of those static IPs.

So I thought I could use mod_rewrite to achieve that and wrote this snippet:

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} 10.8.0.11
RewriteRule ^(.*)$ user1/ [L]


If user1, who has the IP 10.8.0.11, tries to reach 10.8.0.1/, he's properly redirected to the appropriate subfolder 10.8.0.1/user1/. If user1 tries to reach any other subfolder, he's also properly redirected to his own subfolder.

Though there are some issues with this setup:


if there's an index file on that folder, I end up with an internal error
if there's any other file, I cannot download/run it


Is there any way I can overcome this?
I mean, locking a user on a specific subfolder based on his IP and allowing him to browse that folder (viewing a website, retrieving files...).

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Kevin317

1 Comments

Sorted by latest first Latest Oldest Best

 

@Cugini213

I'm sure there must be a more elegant/efficient way of writing this, but this should work to do what you require:

RewriteEngine On
RewriteBase /

# Restrict users from IP address 10.8.0.11 to user1 sub-folder
RewriteCond %{REMOTE_ADDR} 10.8.0.11
RewriteCond %{REQUEST_URI} !(user1)
RewriteRule ^(.*)$ /user1/ [L,R=301]

# Restrict users from IP address 10.8.0.12 to user2 sub-folder
RewriteCond %{REMOTE_ADDR} 10.8.0.12
RewriteCond %{REQUEST_URI} !(user2)
RewriteRule ^(.*)$ /user2/ [L,R=301]

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme