Estou tentando negar tudo e permitir apenas um único IP. Mas, gostaria de ter o seguinte htaccess trabalhando para esse único IP. Não estou encontrando uma maneira de ter os dois funcionando: negar tudo e permitir apenas um, além das seguintes opções:
<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>
Existe uma maneira de fazer isso funcionar?
allow from yourIPv6
Eu sei que esta pergunta já tem uma resposta aceita, mas a documentação do Apache diz:
Portanto, uma resposta mais preparada para o futuro seria:
Felizmente, ajudei a impedir que esta página se torne um desses "tutoriais desatualizados". :)
fonte
Require ip
várias linhas para torná-lo mais legível pelo usuário ou todos os IPs precisam estar em uma linha?Isso pode ser aprimorado usando a diretiva projetada para essa tarefa.
Onde 111.222.333.444 é o seu endereço IP estático.
Ao usar a diretiva "Permitir Pedido, Negar", as solicitações devem corresponder a Permitir ou Negar; se nenhuma for atendida, a solicitação será negada.
http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
fonte
Versão ligeiramente modificada do acima, incluindo uma página personalizada a ser exibida para aqueles que têm acesso negado:
... e dessa forma as solicitações que não forem de 111.222.333.444 verão specific_page.html
(postar isso como comentário parecia terrível porque novas linhas se perdiam)
fonte
test.html
e está na mesma pasta que o.htaccess
. No entanto, não consigo ver os logs (não permitidos no servidor). Você tem alguma idéia de por que eu poderia ter esse problema? Quando estou obtendo o caminho do arquivo através de um cliente ftp, ele diz/test.html
que o caminho não deve ser um problema, certo?Melhorando um pouco mais as respostas anteriores, uma página de manutenção pode ser exibida para seus usuários enquanto você realiza alterações no site:
Onde:
#.#.#.#
é o seu IP: Qual é o meu endereço IP?maintenance.html
há um bom exemplo aqui: Página de Manutenção Simplesfonte
Além da resposta de @David Brown, se você deseja bloquear um IP, primeiro deve permitir todos e depois bloquear os IPs da seguinte forma:
Você pode usar qualquer uma das anotações mencionadas acima para atender às suas necessidades de CIDR.
fonte
Você pode usar o seguinte no htaccess para permitir e negar acesso ao seu site:
Primeiro, definimos uma variável de ambiente allowip se o endereço IP do cliente corresponder ao padrão, se o padrão corresponder, a variável de ambiente allowip recebe o valor 1 .
Na próxima etapa, usamos diretivas Permitir, negar para permitir e negar acesso ao site.
Order deny,allow
representa a ordem dedeny
eallow
.deny from all
esta linha diz ao servidor para negar a todos. a última linhaallow from env=allowedip
permite o acesso a um único endereço IP para o qual configuramos a variável env.Substitua
1\.2\.3\.4\.5
pelo seu endereço IP permitido.Referências:
https://httpd.apache.org/docs/2.4/mod/mod_setenvif.html
https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html
fonte
Não consegui usar o método 403 porque queria a página de manutenção e as imagens da página em uma subpasta do meu servidor, portanto, usei a seguinte abordagem para redirecionar para uma 'página de manutenção' para todos, exceto um único IP *
Fonte: Criando uma página de espera para ocultar seu blog WordPress
fonte
Você pode ter mais de um IP ou até algum outro tipo de permissão, como usuário, nome do host, ... mais informações aqui https://www.askapache.com/htaccess/setenvif/
fonte
Se você quiser usar mod_rewrite para controle de acesso, poderá usar condições como agente do usuário, referenciador http, endereço remoto etc.
Exemplo
Referências:
fonte
Adicione o seguinte comando no arquivo .htaccess. E coloque esse arquivo na sua pasta htdocs.
fonte
Para mim, isso parece funcionar (usando o IPv6 em vez do IPv4). Não sei se isso é diferente para alguns sites, mas para os meus isso funciona.
fonte