• Publicidad

RewriteRule with [P] Flag no funciona

¿Eres administrador de sistemas? Este foro es para todos aquellos temas relacionados con el uso de Perl para administración de sistemas.

RewriteRule with [P] Flag no funciona

Notapor danimera » 2014-01-22 15:53 @703

Resulta que tengo mi .htaccess en un servidor externo y me funciona bien, enmascaro el dominio:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. RewriteEngine On 
  2. RewriteRule ^hudong/moodle(.*) http://xxx.com/hudong/moodle$1 [P] 


Esta directiva la uso en mi servidor externo y funciona perfecto cuando ingreso por ejemplo a:

http://www.midominio.com/hudong/moodle me carga el contenido de http://xxx.com/hudong/moodle sin cambiarme la URL en el navegador.

Ahora, el problema es que tengo un subdominio en el servidor donde está instalada la aplicación y tengo el mismo .htaccess pero cuando ingreso a:

http://www.misubdominio.xxx.com me cambia la URL del navegador a http://xxx.com/hudong/moodle y... no es lo que quiero, el primer caso me funciona bien en mi servidor el segundo en el servidor del cliente nada... ¿QUÉ PUEDE PASAR? :(
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Publicidad

Re: RewriteRule with [P] Flag no funciona

Notapor explorer » 2014-01-22 17:09 @756

¿Y cuál debe ser el resultado correcto?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: RewriteRule with [P] Flag no funciona

Notapor danimera » 2014-01-22 17:49 @784

El resultado correcto es que sí debe enmascarar el dominio y no mostrar el dominio del otro servidor.

Por ejemplo, si ingreso a http://www.midominio.com me debe cargar la página de http://www.bing.com, por ejemplo, pero en la URL del navegador va a decir http://www.midominio.com.

Actualmente, lo que pasa es que ingreso a http://www.midominio.com y me redirecciona a http://www.bing.com, y obviamente me cambia la URL en el navegador.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: RewriteRule with [P] Flag no funciona

Notapor explorer » 2014-01-22 18:16 @803

Según la documentación de mod_rewrite, cuando pones una URL absoluta, siempre se produce una redirección (salvo que coincidan esquema y nombre del servidor con el de la petición, que no es el caso).

Ahora bien... debería funcionar con la bandera '[P]' como tienes puesta... que usa el módulo mod_proxy de Apache para hacer la petición. ¿Lo tienes instalado?

Bueno... se puede usar otro truco. Olvidándonos de mod_rewrite...

Vete a xxx.com, y en hudong/moodle/ escribes un archivo index.html con este contenido:
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
  2.   "http://www.w3.org/TR/html4/frameset.dtd">
  3. <HTML>
  4. <HEAD>
  5. <TITLE>Mi aplicaci&oacute;n</TITLE>
  6. </HEAD>
  7.   <FRAMESET rows="100%">
  8.       <FRAME src="http://www.midominio.com/hudong/moodle/">
  9.   </FRAMESET>
  10. </HTML>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Y ya está. Tus clientes acceden a ese directorio, el servidor web sirve el index.html bajo la URL de ellos, y el navegador web sabe que consiste en un único cuadro, cuya fuente está en tu dominio. Pero la URL del navegador no cambia.

No es una solución perfecta, y en algunas aplicaciones fallará, pero puedes probarla a ver si con tu Moodle funciona.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: RewriteRule with [P] Flag no funciona

Notapor danimera » 2014-01-22 18:23 @807

Es que el rewrite me funciona desde servidores externos, no tengo problema. El frame no puedo usar ya que el moodle todos los vínculos los carga a top...

Mi problema realmente es este que hay en este foro:
http://www.gossamer-threads.com/lists/apache/users/383447
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: RewriteRule with [P] Flag no funciona

Notapor explorer » 2014-01-22 18:28 @811

Revisa mi mensaje anterior. ¿Está activado mod_proxy en el servidor donde tienes instalado el .htaccess?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: RewriteRule with [P] Flag no funciona

Notapor explorer » 2014-01-22 20:27 @894

Estoy leyendo y leyendo la documentación, y el caso es que sí que debería funcionar la primera solución que pusiste.
Incluso dices que sí que te funciona, pero no cuando se trata de un subdominio. Solo en ese caso.

Creo que tengo la solución, pero... el problema está cuando se accede al subdominio en el servidor de la propia aplicación. En ese caso... no debería ocurrir ninguna redirección, ¿verdad?

O sea, las peticiones a

http://www.misubdominio.xxx.com/hudong/moodle/

no deberían recibir ningún cambio, ¿verdad?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: RewriteRule with [P] Flag no funciona

Notapor danimera » 2014-01-23 08:29 @395

Si yo ingresara a http://www.misubdominio.xxx.com/hudong/moodle/ debería hacerme un mod_rewrite sin cambiarme la URL en el navegador a http://www.xxx.com/hudong/moodle/

No entiendo por qué aveces, me carga el contenido sin cambiarme la URL en el navegador, y otras veces me cambia la URL en el navegador.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: RewriteRule with [P] Flag no funciona

Notapor explorer » 2014-01-23 11:56 @538

Un momento... ¿el subdominio http://www.misubdominio.xxx.com está en el mismo servidor que http://www.xxx.com y comparten el mismo DocumentRoot?

En ese caso, no necesitas ningún rewrite. Vale con agregar http://www.misubdominio.xxx.com al ServerAlias de http://www.xxx.com, y así todas las peticiones se resuelven en el mismo dominio virtual.

Y en las líneas del rewrite añades una condición de no ejecución:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. RewriteEngine On 
  2. RewriteCond %{HTTP_HOST}    !xxx\.com$ 
  3. RewriteRule ^hudong/moodle(.*) http://xxx.com/hudong/moodle$1 [P] 
De esa manera, la regla y la petición externa se hacen solo si el Host no acaba en 'xxx.com'.

Si no es así, por favor, danos más detalles de la situación. Por ejemplo: "en el servidor 1 está la aplicación, y se accede con los dominios xxx.com y misubdominio.xxx.com; en el servidor 2...".
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: RewriteRule with [P] Flag no funciona

Notapor danimera » 2014-01-23 14:03 @627

Un momento... ¿el subdominio http://www.misubdominio.xxx.com está en el mismo servidor que http://www.xxx.com y comparten el mismo DocumentRoot?
No. La aplicación se le venderá a clientes que tienen su propio dominio, así que, o crearán un directorio o crearán un subdominio que deberá cargar nuestra aplicación en nuestro servidor... (pero no puede cambiar la URL del navegador jamás, siempre tiene que permanecer el subdominio del cliente en el navegador SIN usar frames).

Pregunto: ¿Es posible cambiarle DNS a un subdominio para que funcione en otro servidor?

En algunos servidores, esta regla
Sintáxis: [ Descargar ] [ Ocultar ]
  1. RewriteRule ^hudong/moodle(.*) http://xxx.com/hudong/moodle$1 [P]  

Funciona perfectamente y hace que conserve en el navegador el subdominio del cliente, pero en otros servidores es redirecionado o refresca la página a: http://xxx.com/hudong/moodle$1

PREGUNTA : ¿Cómo me doy cuenta si un servidor tiene mod_proxy activado?
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Siguiente

Volver a Administración

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados