¿Cómo redirecciono desde una carpeta en un subdominio al dominio principal?

Un poco de información adicional ...

PHPBB tiene una forma de redirigirlo después de iniciar sesión a la página que estaba viendo antes, incluso si está utilizando el formulario de inicio de sesión externamente en sus propias páginas. Sin embargo, decidieron que debería ser una ruta relativa dentro de su propio dominio. Lo cual no es exactamente genial si tienes el foro en un subdominio como forum.mydomain.com ...

El ejemplo de su wiki: <input type="hidden" name="redirect" value="./somefile.html" />

Para solucionar el problema del subdominio, pensé que agregaría una indicación de una redirección de página principal, como <input type="hidden" name="redirect" value="./redirect/frontpagenews.php" />

Entonces, si usa el formulario de inicio de sesión en la página http://mysite.com/frontpagenews.php la URL de redireccionamiento del foro termina pareciendo forum.mysite.com/redirect/frontpagenews.php (esto funciona, el foro crea este enlace al que volver después de iniciar sesión). Todo lo que necesita es una regla de reescritura para detectar esto, por lo que en realidad lo enviaría de regreso a http://mysite.com/frontpagenews.php

La pregunta...

Como paso de forum.mysite.com/redirect/*anything* a mysite.com/*anything* ?

He estado en esto por un tiempo y creo que el siguiente código debería funcionar, excepto que no es así. Lo puse por encima de las otras reglas de reescritura de foros en el archivo htaccess en forum.mysite.com, ya que probablemente debería estar bien si es la primera regla que está marcada.

RewriteCond %{HTTP_HOST} ^forum\.mysite\.com/redirect/(.*)$ [NC]
RewriteRule (.*) http://mysite\.com/$1 [QSA,L,NC]

También probé esto como condición, pero sin alegría:

RewriteCond %{REQUEST_URI} /redirect/(.*)$ [NC]

preguntado el 08 de noviembre de 11 a las 15:11

1 Respuestas

HTTP_HOST solo coincide con un nombre de host, no con la ruta. La ruta debe ser parte de RewriteRule. Suponiendo que el archivo .htaccess que está editando reside en la raíz de forum.mysite.com (como en el equivalente de: forum.mysite.com/.htaccess), debería verse así:

RewriteCond %{HTTP_HOST} ^forum\.mysite\.com$ [NC]
RewriteRule ^redirect/(.+)$ http://mysite.com/$1 [L,NC,R]

No necesitarás el QSA en los corchetes de la regla porque la cadena de consulta se agregará de todos modos (a menos que tenga un ? en el objetivo, p. ej. http://mysite.com/$1?p=1).

Esto redirigirá al navegador desde forum.mysite.com/redirect/*anything* a mysite.com/*anything*

respondido 09 nov., 11:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.