Ebalf: Apache URL-Rewriting: RewriteCond vs. If-Else

Beitrag lesen

Moin,

mehr oder weniger komplizierte Umleitungen habe ich im Apache bisher immer mit mod_rewrite und RewriteCond-Konstruktionen gemacht.

Jetzt bin ich mehr oder weniger zufällig über die If-Anweisung (Beschreibung in englisch) gestolpert, die mir so nicht bekannt, bzw. nicht bewusst war und nun frage ich mich, ob es Gründe für oder gegen eine der beiden möglichen Varianten gibt, auch im Bezug auf Performance.

Nehmen wir z.B. den ersten Eintrag aus den Beispielen zur Anweisung:

<If "%{HTTP_HOST} == 'example.com'">
    Redirect permanent "/" "http://www.example.com/"
</If>

Bisher hätte ich diese Anweisung geschrieben als:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Jetzt mal davon abgesehen, dass die zweite Variante auf beliebige Hostnamen matcht (das liese sich sicher noch anpassen), scheint es mir doch so, dass die erste Anweisung speziell für den Nutzer doch deutlich angenehmer zu lesen ist.

Gibt es noch gute Gründe für die RewriteCond-Varianten, oder sollte man vielleicht aus Gründen der Anwenderfreundlichkeit eher die If-Konstruktion verwenden?