Diferença entre “Redirect permanent” vs. mod_rewrite RewriteRule

6

Este é um servidor Apache httpd 2.2.

Exigimos que o acesso a este servidor da Web seja criptografado por HTTPS.

Quando clientes da web visitam meu site no link $ foo (porta 80), desejo redirecionar a solicitação para o site criptografado com HTTPS no link $ foo.

Parece haver duas maneiras comuns de fazer isso:

O primeiro método usa a diretiva " Redirecionar 'de mod_alias:

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

Segundo método usa mod_rewrite:

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

Qual é a diferença entre uma sub-rotina "Redirect permanent" e a mod_rewrite. Um é melhor que o outro?

    
por Stefan Lasiewski 06.09.2012 / 01:42

3 respostas

7

Por padrão, mod_rewrite faz redirecionamentos "302 Found", que são temporários. Supondo que tudo o resto seja igual, Redirect permanent é equivalente a RewriteRule <blah> [R=permanent] .

    
por 06.09.2012 / 04:47
5

Os mecanismos de pesquisa verão um redirecionamento permanente e atualizarão seus índices de acordo.

    
por 06.09.2012 / 01:50
5

Is one better then the other?

O Apache agora recomenda o uso de Redirect de mod_alias em vez de usar RewriteRule de mod_rewrite . Consulte o link , que diz:

mod_rewrite should be considered a last resort, when other alternatives are found wanting. Using it when there are simpler alternatives leads to configurations which are confusing, fragile, and hard to maintain.

    
por 21.12.2015 / 20:14