Diferencia entre "Redirigir permanente" vs. mod_rewrite RewriteRule

9

Este es un servidor Apache httpd 2.2.

Requerimos que HTTPS encripte el acceso a este servidor web.

Cuando los clientes web visitan mi sitio en http://www.example.org/ $ foo (puerto 80), quiero redirigir su solicitud al sitio web cifrado HTTPS en https://www.example.org/ $ foo.

Parece que hay dos formas comunes de hacer esto:

El primer método usa la directiva ' Redirect ' de mod_alias:

<VirtualHost *:80>
    Redirect permanent / https://www.example.org/
</VirtualHost>

El segundo método usa mod_rewrite:

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

¿Cuál es la diferencia entre un "redireccionamiento permanente" y la estrofa mod_rewrite. ¿Es uno mejor que el otro?

Stefan Lasiewski
fuente

Respuestas:

8

Por defecto mod_rewrite realiza redireccionamientos "302 encontrados", que son temporales. Asumiendo que todo lo demás es igual, Redirect permanentes equivalente a RewriteRule <blah> [R=permanent].

Mark Wagner
fuente
En realidad no, la Redirectdirectiva maneja mejor la redirección de http a https. Vea el comentario de Stefan a continuación y consulte esta sección de la documentación de Apache: httpd.apache.org/docs/current/rewrite/avoid.html#redirect
Gondy
7

¿Es uno mejor que el otro?

Apache ahora recomienda el uso de Redirectfrom en mod_aliaslugar de usar RewriteRulefrom mod_rewrite. Ver https://httpd.apache.org/docs/current/rewrite/avoid.html#redirect , que dice:

mod_rewrite debe considerarse un último recurso, cuando se encuentran otras alternativas deficientes. Usarlo cuando hay alternativas más simples conduce a configuraciones que son confusas, frágiles y difíciles de mantener.

Stefan Lasiewski
fuente
5

Los motores de búsqueda verán una redirección permanente y actualizarán sus índices en consecuencia.

MDMarra
fuente
> ¿Es uno mejor que el otro?
Stefan Lasiewski