.htaccess redirige a todas las direcciones IP, pero la mía

Básicamente, estoy tratando de trabajar en el front-end de un sitio web, pero me gustaría que todos los demás, excepto yo, sean redirigidos a una página de construcción si lo desea. Actualmente tengo:

redirect 301 /index.php http://www.domain.com/construction.php 

Mientras esto funciona, funciona bien, me gustaría seguir viendo el sitio en vivo, ¿es posible excluir a todos menos a mi IP?

Gracias de nuevo.

Podrías hacerlo con mod_rewrite

 Options +FollowSymlinks RewriteEngine on RewriteCond %{REMOTE_ADDR} !=123.45.67.89 RewriteRule index.php$ /construction.php [R=301,L] 

Necesitará algunas condiciones antes de redirigir:

 RewriteCond %{REMOTE_ADDR} !=1.3.3.7 RewriteCond %{REQUEST_URI} !=/construction.php RewriteRule .* /construction.php [L] 

Además, para asegurarse de que después de que se elimine el locking, los clientes vean la página real, esta solución no redirige a los clientes permanentemente (utilizando un redireccionamiento 301), sino que redirige internamente. Sustituye 1.3.3.7 por la dirección IP real que estás utilizando.

Hola, podrías hacer lo siguiente en el archivo .htaccess

 RewriteEngine on # Redirect all except allowed IP RewriteCond %{REMOTE_ADDR} !^12.345\.678\.901$ RewriteRule /index.php http://www.domain.com/construction.php [R=302,L] 

poner su IP en lugar de 12.345.678.901

Si su versión de apache es 2.4 *, puede redirigir a sus visitantes a la página de construcción usando las siguientes directivas en htaccess:

  RedirectMatch ^/((?!construction.php).*)$ /construction.php  

Dice que si la dirección IP no es yourIp redirigir todas las solicitudes a /construction.php .

En versiones anteriores de apache, puede usar la siguiente solución basada en mod-rewrite:

 RewriteEngine on RewriteCond %{REMOTE_ADDR} !^myIP$ RewriteRule !construction\.php /construction.php [L] 

Esto internamente forwords la solicitud a /construction.php si el RewriteCondition cumple. Puede reemplazar L con R si desea ver la URL redirigida en la barra de direcciones del navegador.

Lo siguiente funcionó para mí

 Deny from all Allow from xxx.xxx.xx.xxx 

Si tiene un rango de direcciones IP que desea excluir de la página ‘en construcción’, puede utilizar |

 RewriteEngine on RewriteCond %{REMOTE_ADDR} !^127.0.0.1|212.250.141.228 RewriteRule ! construction\.html /construction.html [R] 

Es importante poner las 2 últimas líneas al final de su archivo .htaccess , especialmente cuando contiene más reglas de reescritura.

Además de usar la directiva if como sugieren otras respuestas, también puede agregar múltiples direcciones IP al incluir otras condiciones en una directiva usando el operador && como tal:

  RedirectMatch ^/((?!construction.php).*)$ /construction.php  

Vea los documentos aquí: http://httpd.apache.org/docs/2.4/mod/core.html#if