Redirect 301 o RedirectMatch 301 no me funcionan

Redirect 301 o RedirectMatch 301 no me funcionan

Entonces este es mi escenario:

Tengo 1 IP estática y 2 servidores. 1 servidor es un servidor web y el otro es un servidor de correo. Tengo un enrutador como firewall de hardware con todos los puertos configurados que requieren paso a direcciones IP internas.

Si un usuario escribe la URLhttp://www.dominio.comven ese sitio web. Si el usuario quiere acceder al webmail escribe la URLhttp://correo.dominio.compero todavía veohttp://www.dominio.com

He configurado el dominio de correo web para que sea accesible a través del puerto 8080 en el servidor de correo y si el usuario escribe la URLhttp://correo.dominio.com:8080Funciona sin problemas pero no conhttp://correo.dominio.com.

Entonces este es mi problema:

En mi httpd.conf quiero configurar un Redireccionamiento 301 para que cuando el usuario escribahttp://correo.dominio.comson redirigidos ahttp://correo.dominio.com:8080

Preferiría no usar .htaccess y mantener las directivas en httpd.conf

Gracias...

Respuesta1

Deberá crear un host virtual en su servidor web principal que responda a las solicitudes web de la dirección "correo.dominio.com". Échale un vistazo alHost virtual basado en nombredocumentación en el sitio web de Apache. También necesitarás una regla mod_rewrite para realizar la redirección. Su configuración se vería así:

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName mail.domain.com
  RewriteEngine On
  RewriteRule (.*) http://mail.domain.com:8080/\1 [R=301,L]
</VirtualHost>

Respuesta2

Hay al menos 2 formas de hacer esto:

  1. crear 2anfitrión virtualuno para www.domain.com y otro para mail.domain.com y luego coloque su directiva RedirectMatch en el segundo.
    También podrías utilizar elProxyPassdirectiva en el host virtual mail.domain.com para que funcione como un proxy inverso y que mail.domaine.com:80 funcione directamente sin redirección

  2. Use mod_rewrite de esta manera para redirigir solo a la URL mail.domain.com con una regla como esa

    RewriteCond %{HTTP_HOST} ^mail.domain.com$ [NC]
    RewriteRule ^(.*)http://correo.dominio.com:8080/1$ [R=301]

    con mod_rewrite también puedes hacer un proxy inverso con una regla como (mail.domain.com debería resolverse en la IP interna)

    RewriteCond %{HTTP_HOST} ^mail.domain.com$ [NC]
    RewriteRule ^(.*)http://correo.dominio.com:8080/$1 [P]

información relacionada