Différence entre «Redirect permanent» et mod_rewrite RewriteRule


9

Il s'agit d'un serveur Apache httpd 2.2.

Nous exigeons que l'accès à ce serveur Web soit crypté par HTTPS.

Lorsque les clients Web visitent mon site à http://www.example.org/ $ foo (port 80), je souhaite rediriger leur demande vers le site Web chiffré HTTPS à https://www.example.org/ $ foo.

Il semble y avoir deux façons courantes de procéder:

La première méthode utilise la directive ' Redirect ' de mod_alias:

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

La deuxième méthode utilise mod_rewrite:

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

Quelle est la différence entre une "Redirection permanente" et la strophe mod_rewrite. Est-ce que l'un est meilleur que l'autre?

Réponses:


8

Par défaut, mod_rewrite fait des redirections "302 Found", qui sont temporaires. En supposant que tout le reste est égal, Redirect permanentéquivaut à RewriteRule <blah> [R=permanent].


En fait non, la Redirectdirective gère mieux la redirection de http vers https. Voir le commentaire de Stefan ci-dessous et consultez cette section de la documentation Apache: httpd.apache.org/docs/current/rewrite/avoid.html#redirect
Gondy

7

Est-ce que l'un est meilleur que l'autre?

Apache recommande désormais l'utilisation de Redirectfrom mod_aliasau lieu d'utiliser RewriteRulefrom mod_rewrite. Voir https://httpd.apache.org/docs/current/rewrite/avoid.html#redirect , qui dit:

mod_rewrite devrait être considéré comme un dernier recours, lorsque d'autres alternatives s'avèrent insuffisantes. Son utilisation lorsqu'il existe des alternatives plus simples conduit à des configurations déroutantes, fragiles et difficiles à maintenir.


5

Les moteurs de recherche verront une redirection permanente et mettront à jour leurs index en conséquence.


> Est-ce que l'un est meilleur que l'autre?
Stefan Lasiewski
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.