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.