Permitir a una url accedes a mi web a traves de htaccess

Iniciado por Hekaly, 2 Julio 2014, 18:16 PM

0 Miembros y 3 Visitantes están viendo este tema.

MinusFour

#10
No creo que esten usando bien el RewriteCond, porque no hay ninguna RewriteRule para la condiciónal.

Código (apache) [Seleccionar]

RewriteCond %{HTTP_REFERER} !.*dominio1.com.* [NC]
RewriteRule ^/carpeta$ - [F]


Edit: Creo que así funciona mejor.

Hekaly

Buenas a todos.

Sigo liado con el tema del htaccess

Me gustaria ir por partes asi que si quiero prohibir que un domonio accesa a otro dominio. lo aria asi, no?

Código (bash) [Seleccionar]

RewriteCond %{HTTP_HOST} ^dominio\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/categoria/ [NC]
RewriteRule ^(.*)$   http://domino2.com/  [R=301,L]


Tambien eh probado con la ultima linea..

Código (bash) [Seleccionar]

RewriteRule ^(.*)$   http://dominio2.com/  [F]



Pero no me funciona bien, si accedo con un href a dominio.com/categoria desde dominio2.com puedo acceder.


Muchas gracas.

MinusFour

#12
No exactamente...

Para empezar, lo que tu quieres hacer no es que un dominio solo pueda acceder a un recurso especifico en tu otro dominio, lo que tu quieres hacer es que solo puedas ver el recurso del segundo dominio si vienes del primer dominio lo cual es bastante diferente. Para lo cual tienes que usar el REFERER.

¿Has probado justo con el código que puse la vez pasada? Le hice un par de modificaciones... no te confundas si uso el nombre carpeta, no estoy redireccionando ninguna carpeta (a menos de que SI tengas esa carpeta)... puedes decirle endpoint o recurso si prefieres....

Si no te funciona, lo único que se me pudiera ocurrir es que no está agarrando la regla del mod_rewrite del wordpress. En mi opinión debería ser lo mismo que el REQUEST URI porque al final los dos estan trabajando con los url paths... pero si no es así...

Código (apache) [Seleccionar]

RewriteCond %{HTTP_REFERER} !.*dominio1.com.* [NC]
RewriteCond %{REQUEST_URI} ^/categoria/ [NC]
RewriteRule ^(.*)$ - [F]


Se traduce a: Si vienes de una URL con dominio1.com en cualquier parte de ella y estás accediendo a /categoria/, envia un forbidden. Ojo con el trailing slash, lo mas probable es que no haga match si vas a dominio2.com/categoria pero si dominio2.com/categoria/

Hekaly

Hola muy buenas.

Reabro este hilo para preguntaros otra duda sobre redirreciones de referer.

Respecto a la anterior duda ya lo consegui.

Código (bash) [Seleccionar]
RewriteCond %{HTTP_REFERER} !^http://xxxxxx\.com
RewriteCond %{HTTP_REFERER} !^http://xx\.xxx\.es
RewriteCond %{REQUEST_URI} ^/ugr/.*
RewriteRule ^(.*)        http://www.example.com/%{HTTP_REFERER} [L,R]



El caso es que ahora me piden hacer eso mismo (acceder a un uri solo desde los referrer que yo quiero), pero que vengan desde un https.

He intentado probar muchas formas y no lo he conseguido.

Código (bash) [Seleccionar]
RewriteCond %{HTTPS_REFERER} !^https://xxxxxx\.com
RewriteCond %{HTTPS} !^https://xxxxxx\.com
RewriteCond %{HTTP_REFERER} !^https://xxxxxx\.com
RewriteCond %{HTTP_REFERER} !^http(s)?://xxxxxx\.com
RewriteCond %{HOST_PORT} = 443


Entre otras formas y nada.

Creo que consegui que me funcionara solo por https pero el http no me iva.

Muchas gracias.


MinusFour

Cita de: Hekaly en  8 Agosto 2014, 09:59 AM
Hola muy buenas.

Reabro este hilo para preguntaros otra duda sobre redirreciones de referer.

Respecto a la anterior duda ya lo consegui.

Código (bash) [Seleccionar]
RewriteCond %{HTTP_REFERER} !^http://xxxxxx\.com
RewriteCond %{HTTP_REFERER} !^http://xx\.xxx\.es
RewriteCond %{REQUEST_URI} ^/ugr/.*
RewriteRule ^(.*)        http://www.example.com/%{HTTP_REFERER} [L,R]



El caso es que ahora me piden hacer eso mismo (acceder a un uri solo desde los referrer que yo quiero), pero que vengan desde un https.

He intentado probar muchas formas y no lo he conseguido.

Código (bash) [Seleccionar]
RewriteCond %{HTTPS_REFERER} !^https://xxxxxx\.com
RewriteCond %{HTTPS} !^https://xxxxxx\.com
RewriteCond %{HTTP_REFERER} !^https://xxxxxx\.com
RewriteCond %{HTTP_REFERER} !^http(s)?://xxxxxx\.com
RewriteCond %{HOST_PORT} = 443


Entre otras formas y nada.

Creo que consegui que me funcionara solo por https pero el http no me iva.

Muchas gracias.



Eso es porque las reglas son mutuamente excluyentes (no puedes venir de un sitio HTTPS Y un sitio HTTP) necesitas ponerle un OR si quieres que se cumpla una o la otra.