Apache – redirection vers URL externe avec mod_rewrite

Suite Ă  une demande pour ajouter des liens externes dans notre portail local, le portail n’Ă©tant pas nativement un aggrĂ©gateur d’URL, j’ai pensĂ© Ă  le faire nativement dans Apache en utilisant le module mod_rewrite.

Le but Ă©tant, depuis la location « ext », d’avoir un redirect vers n’importe quellle URL (www.google.com, etc.). La configuration donne ceci :

<Location /ext>
  # Activer les options de suivi de liens
  Options +FollowSymLinks +SymLinksIfOwnerMatch

  # Activer le moteur de réécriture
  RewriteEngine On

  # Si la requĂȘte contient un paramĂštre 'url' valide
  RewriteCond %{QUERY_STRING} (?:^|&)url=([a-zA-Z0-9.-]+)(?:&|$)
  

  # Rediriger vers l'URL indiquée en utilisant HTTPS, sans échappement des caractÚres spéciaux
  RewriteRule .* https://%1? [R=301,L,NE]
</Location>

Ce qui fait que pour, par exemple, le lien suivant : https://votreportailsousapache.fr/ext?url=www.google.com

Le serveur apache vous redirigera automatiquement sur www.google.com.

Cela vous permet donc de gĂ©nĂ©rer rapidement un aggrĂ©gateur de liens pour n’importe quel portail qui n’accepterait que des liens relatifs ou internes.