Qual versão do apache você está usando? Uma maneira de restringir o acesso a recursos com base na URL é usar
Por exemplo:
<Location /admin/tools>
Order Deny,Allow
Deny from all
Allow from 192.168.1.34
</Location>
Estou usando Apache Reverse Proxy
, seguindo algumas configurações de Apache Virtual Host
ProxyRequests Off
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyVia On
ProxyRequests Off
ProxyPreserveHost On
proxyPass / ajp://127.0.0.1:8009/
Agora, quero restringir request url
como http://mysite.com/admin/tools
de tal forma que
Ele deve permitir o acesso de IP address
somente. Como posso conseguir isso?
EDITAR:
A partir do requisito acima esta resposta está funcionando bem, suponha que eu queira permitir acessar admin
URL de um ou dois IP's
e resto IP's
Eu quero redirecionar para index
page em vez de mostrar forbidden error
, como posso obter isso?
Qual versão do apache você está usando? Uma maneira de restringir o acesso a recursos com base na URL é usar
Por exemplo:
<Location /admin/tools>
Order Deny,Allow
Deny from all
Allow from 192.168.1.34
</Location>
As of above requirement this answer is working fine, Suppose I want allow to access admin URL from one or two IP's and rest IP's I want to redirect to index page instead of showing forbidden error,how can I get this ?
Para expandir a resposta do @krist-van-besien, você pode fazer isso com a ajuda de ErrorDocument
para 403 Forbidden assim:
<Location /admin/tools>
Order Deny,Allow
Deny from all
Allow from 192.168.1.34
ErrorDocument 403 /index.php
</Location>
Por favor, note que o usuário deve ter permissões para visualizar a página para a qual você está redirecionando. Para obter mais informações, você pode verificar essa questão: Permitir que o IP bloqueado exiba 403 ErrorDocument
Para expandir esse cenário para aplicar a um ponto de extremidade de serviço da web RESTful ao chamar o ponto de extremidade de uma página da web.
Existe uma maneira de fazer proxy de solicitações da página da Web de um servidor local e encaminhá-las para o endereço de serviço da Web, além de permitir que as solicitações da rede interna local (desenvolvedores) acessem o terminal de serviço da Web e ainda restringir solicitações de terminal externo direto da WS?
Por exemplo, se o serviço da Web estiver sendo executado no Tomcat (porta 8080) e estivermos usando o mod_proxy para redirecionar as solicitações do apache da página da Web na porta 80 - > tomcat: 8080 / webservice em nossas chamadas de serviço da página da web.
<Location /admin/tools>
Order Deny,Allow
Deny from all
Allow from localhost
Allow from 127.0.0.1
Allow from *local.domain.com
</Location>
ProxyPass /admin/tools http://localhost:8080/admin/tools
ProxyPassReverse /admin/tools http://localhost:8080/admin/tools
Quando eu tento isso, ele bloqueia todo o acesso do ponto de extremidade do WS, incluindo a solicitação da página da Web que passa pelo ponto de extremidade de passagem do proxy.