Cómo redireccionar con htaccess?

Sevidores http, virtualhosts, CMSs,

Moderadores: frank, dxfiles

Responder
Avatar de Usuario
KZKG^Gaara
Mensajes: 463
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: /dev/kzkggaara
Contactar:

Cómo redireccionar con htaccess?

Mensaje por KZKG^Gaara » Mar, 10 Abr 2012, 09:19

Buenas,
Tengo el siguiente dilema:

Necesito redireccionar a todos los que entren a X carpeta que tengo en mi servidor hacia otra URL, pero redireccionar solo los que en su UserAgent NO tengan declarado "vip" (sin las comillas).
Esto no es complejo, pues con estas simples líneas basta para hacerlo:

Código: Seleccionar todo

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !^.*vip.*$ [NC]
RewriteRule .* Http://otrositio.net/
</IfModule>
De esta forma, todos los que NO tengan en su UserAgent en algún lugar de la cadena "vip" serán redireccionados hacia otro sitio, esto funciona sin problemas mediante HTTP (puerto 80), mi problema está en el HTTPS (puerto 443).

Aparentemente, si alguien usa para acceder https:// _____ NO le redirecciona, como si esta regla no existiera.

Ese es mi problema.
Agradecería cualquier ayuda que puedan brindarme.

Estoy usando Debian Squeeze en el servidor, Apache de web server.
Estas líneas las estoy poniendo en el .htaccess en el / de la carpeta hosteada, y repito, si se accede mediante http:// funciona todo, mediante https:// es que no funciona.

Saludos y gracias por adelantado.
~~» KZKG^Gaara «~~
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Cómo redireccionar con htaccess?

Mensaje por hugo » Mar, 10 Abr 2012, 14:21

Prueba con esto:

Código: Seleccionar todo

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !(^.*vip.*)$ [NC]
RewriteCond %{HTTPS} =on
RewriteRule .* https://otrositio.net/ [R,L]
RewriteCond %{HTTPS} =off
RewriteRule .* http://otrositio.net/ [R,L]
</IfModule>
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Avatar de Usuario
KZKG^Gaara
Mensajes: 463
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: /dev/kzkggaara
Contactar:

Re: Cómo redireccionar con htaccess?

Mensaje por KZKG^Gaara » Mar, 10 Abr 2012, 15:29

En realidad esa combinación ya la había probado :)
Especificando si era HTTPS o no (on|off), puerto 443 y hasta etc... al final, resolví el problema:
Faltaba declarar el directory y las opciones en el default-ssl.
En este archivo puse:

Código: Seleccionar todo

<Directory /var/www/whatever/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>
Y en el .htaccess lo siguiente:

Código: Seleccionar todo

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !^.*vip.*$ [NC]
RewriteCond %{HTTPS} =on
RewriteRule .* Http://otrositio.net/
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !^.*vip.*$ [NC]
RewriteRule .* Http://otrositio.net/
</IfModule>
El primer bloque para redireccionar cuando sea HTTPS y el segundo para cuando sea HTTP.
~~» KZKG^Gaara «~~
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Cómo redireccionar con htaccess?

Mensaje por hugo » Mar, 10 Abr 2012, 15:52

Me alegra que resolvieras. Por cierto, si yo fuera tu, deshabilitaría los índices en las opciones del directorio (a menos que realmente los necesites, que no suele ser habitual con CMS).
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Avatar de Usuario
KZKG^Gaara
Mensajes: 463
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: /dev/kzkggaara
Contactar:

Re: Cómo redireccionar con htaccess?

Mensaje por KZKG^Gaara » Mar, 10 Abr 2012, 17:35

jeje en realidad esto no es un CMS jeje ... TopSecret jeje...
~~» KZKG^Gaara «~~
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.

Responder