Estoy tratando de negar todo y permitir solo una sola IP. Pero, me gustaría tener el siguiente htaccess funcionando para esa única IP. No estoy encontrando una manera de hacer que ambos funcionen: negar todo y permitir solo uno, más las siguientes opciones:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>
¿Hay alguna manera de hacer que esto funcione?
allow from yourIPv6
Sé que esta pregunta ya tiene una respuesta aceptada, pero la documentación de Apache dice:
Entonces, una respuesta más a prueba de futuro sería:
Con suerte, he ayudado a evitar que esta página se convierta en uno de esos "tutoriales obsoletos". :)
fuente
Require ip
varias líneas para que sea más legible para el usuario o todas las IP deben estar en una sola línea?Esto se puede mejorar utilizando la directiva diseñada para esa tarea.
Donde 111.222.333.444 es su dirección IP estática.
Cuando se utiliza la directiva "Permitir pedido, denegar", las solicitudes deben coincidir con Permitir o Denegar, si no se cumple ninguno, la solicitud se rechaza.
http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
fuente
Versión ligeramente modificada de lo anterior, que incluye una página personalizada para mostrar a aquellos a quienes se les niega el acceso:
... y de esa manera aquellas solicitudes que no provengan de 111.222.333.444 verán specific_page.html
(publicar esto como comentario parecía terrible porque se pierden nuevas líneas)
fuente
test.html
y está en la misma carpeta que.htaccess
. Sin embargo, no puedo ver los registros (no permitido desde el servidor). ¿Tienes alguna idea de por qué podría tener ese problema? Cuando obtengo la ruta del archivo a través de un cliente ftp, me dice que/test.html
la ruta no debería ser un problema, ¿verdad?Mejorando un poco más las respuestas anteriores, se puede mostrar una página de mantenimiento a sus usuarios mientras realiza cambios en el sitio:
Dónde:
#.#.#.#
Cuál es tu IP: ¿Cuál es mi dirección IP?maintenance.html
hay un ejemplo agradable aquí: Mantenimiento Simple Páginafuente
Además de la respuesta de @David Brown, si desea bloquear una IP, primero debe permitir todo y luego bloquear las IP como tales:
Puede usar cualquiera de las anotaciones mencionadas anteriormente para satisfacer sus necesidades de CIDR.
fuente
Puede usar lo siguiente en htaccess para permitir y denegar el acceso a su sitio:
Primero configuramos una variable env allowip si la dirección IP del cliente coincide con el patrón, si el patrón coincide, entonces a la variable env allowip se le asigna el valor 1 .
En el siguiente paso, usamos las directivas Permitir, denegar para permitir y denegar el acceso al sitio.
Order deny,allow
representa el orden dedeny
yallow
.deny from all
esta línea le dice al servidor que niegue a todos. la última líneaallow from env=allowedip
permite el acceso a una única dirección IP para la que establecemos la variable env.Reemplace
1\.2\.3\.4\.5
con su dirección IP permitida.Referencias
https://httpd.apache.org/docs/2.4/mod/mod_setenvif.html
https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html
fuente
No pude usar el método 403 porque quería la página de mantenimiento y las imágenes de página en una subcarpeta en mi servidor, así que utilicé el siguiente enfoque para redirigir a una 'página de mantenimiento' para todos menos una sola IP *
Fuente: Crear una página de espera para ocultar tu blog de WordPress
fuente
Puede tener más de una IP o incluso algún otro tipo de permiso como usuario, nombre de host, ... más información aquí https://www.askapache.com/htaccess/setenvif/
fuente
Si desea usar mod_rewrite para el control de acceso, puede usar condiciones como agente de usuario, referencia http, dirección remota, etc.
Ejemplo
Referencias
fuente
Agregue el siguiente comando en el archivo .htaccess. Y coloque ese archivo en su carpeta htdocs.
fuente
Para mí, esto parece funcionar (Usar IPv6 en lugar de IPv4) No sé si esto es diferente para algunos sitios web, pero para el mío funciona.
fuente