[.htaccess] Redirect op basis van IP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 27-08 15:31
Vandaag begonnen met voorbereidingen om de website van een klant online te zetten. Nu had ik al bedacht dat het handig zou wezen om de oude website in de dir 'old' te zetten en die met .htaccess alsnog als 'root' te gebruiken. Dat lukte met onderstaande code:

/.htaccess
code:
1
2
3
4
5
6
7
8
9
10
RewriteEngine On

# Map http://www.example.com to /dir.
RewriteRule ^$ /old/ [L]

# Map http://www.example.com/x to /dir/x unless there is a x in the web root.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/old/
RewriteRule ^(.*)$ /old/$1


/old/.htaccess
code:
1
2
3
4
# Add trailing slash to directories within dir
# This does not expose the internal URL.
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule ^old/(.*[^/])$ http://(www.)?xxx.nl/$1/ [R=302]


Toen kreeg ik het idee om dan alleen voor mijn IP gewoon de 'root' weer te geven zodat ik verder kon met het installeren en uploaden van alle data. Even zoeken op google en toen kwam ik hier http://stackoverflow.com/...st-to-a-certain-error-url.

/.htaccess
code:
1
2
3
4
5
6
7
8
9
10
11
RewriteEngine On

# Map http://www.example.com to /dir.
RewriteCond %{REMOTE_ADDR} !^xx\.xxx\.xxx\.xxx$
RewriteRule ^$ /old/ [L]

# Map http://www.example.com/x to /dir/x unless there is a x in the web root.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/old/
RewriteRule ^(.*)$ /old/$1


Uiteraard de xxx veranderd in m'n eigen IP hier, maar helaas! Het wil niet werken. Als ik de RewriteCond boven de eerste RewriteRule zet, doet hij het helemaal niet. Hij lijkt zich niets aan te trekken van het IP, maar laat de rewrite wel zitten.

Iemand ideeën?

Edit: Ik dacht dat het niet werkte, maar m'n telefoon zit op Wifi hier en heeft natuurlijk hetzelfde IP adres :F Maar goed, misschien intressant voor andere mensen die hier terecht komen :+

[ Voor 7% gewijzigd door TheNephilim op 08-03-2012 15:47 ]


Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 15:49

Reinier

\o/

Heb je de punten in je IP-adres wel ge-escaped?

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 27-08 15:31
Jazeker, hij werkt nu ook :p Check de edit in de TS XD

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 15:49

Reinier

\o/

:D

Acties:
  • 0 Henk 'm!

  • bartbh
  • Registratie: Maart 2004
  • Niet online
Als het al een bestaande website is, dan zou ik nog even een 302 redirect toevoegen voor het doorsturen van bezoekers van de root naar /old. For the sake of SEO ;)

Oeps, 302 is by default :P

[ Voor 10% gewijzigd door bartbh op 08-03-2012 15:45 ]


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 27-08 15:31
Daar heb je gelijk in! Thnx voor de tip :D

/.htaccess
code:
1
2
3
4
5
6
7
8
9
10
11
RewriteEngine On

# Map http://www.example.com to /dir.
RewriteCond %{REMOTE_ADDR} !^xx\.xxx\.xxx\.xxx$
RewriteRule ^$ /old/ [L] [R=302]

# Map http://www.example.com/x to /dir/x unless there is a x in the web root.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/old/
RewriteRule ^(.*)$ /old/$1 [R=302]
Pagina: 1