Redirection de pages web

Exemples en ASP, PHP, JavaScript, HTML et .htaccess

Rediriger automatiquement le visiteur sur le site en ssl quand il visite le site en non sécurisé

 RewriteEngine on
 Rewritecond %{HTTP_HOST} ^nom_domaine.tld$
 Rewriterule ^(.*) https://ssl.serveur.net/~login/$1 [QSA,L,R=301]
   * Pour ne passer sur le site sécurisé que pour la consultation d'une page précise :
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^nom_domaine.tld$
  RewriteCond %{REQUEST_URI} ~login/page.php
  RewriteRule ^(.*) https://ssl.serveur.net/~login/$1 [QSA,L,R=301]
  * Pour forcer l'accès en https
   # Redirection vers le vhost en HTTPS 
   RewriteEngine on 
   RewriteCond %{SERVER_PORT} !^443$ 
   RewriteRule ^/(.*)$ https://%{SERVER_NAME}$1 R=301,L

En PHP :

 
  <?
$nomserveur = $_SERVER["SERVER_NAME"];
switch ($nomserveur) {
case "www.way.com":
 header("location: /en/");
 break;
case "www.way.fr":
 header("location: /fr/");
 break;
}
?>

 En HTML
 <META HTTP-EQUIV=Refresh CONTENT="0;URL= ...">
 Pour empecher la mise en cache de la page : 
 <META http-equiv="Cache-Control" CONTENT="no-store">
 <META http-equiv="Pragma" CONTENT="no-cache">
 <META http-equiv="Cache-Content" CONTENT="no-cache">
 <META http-equiv="expires" content="-1">

 En ASP
   <%
 
 NomServeur = Request.ServerVariables("SERVER_NAME")
 
 SELECT CASE NomServeur
 
 CASE "www.oulat.fr"
 response.redirect "http://www.oulat.fr/oulat/fr/index.html"
 
 CASE "www.oulat.it"
 response.redirect "http://www.oulat.fr/oulat/it/index.html"
 
 CASE "www.oulat.de"
 response.redirect "http://www.oulat.fr/oulat/de/index.html"
 
 CASE ELSE
 
 .....
 
 END SELECT
 
 %>

 En HTML avec masquege de l'URL
 
   <HTML>
 <head>
 <title>web</title>
 </head>
 <frameset frameborder=no border=0 rows="100%,*">
 <frame name="droite" src="http://perso.wanadoo.fr/login">
 </frameset>
 <noframe>
 <body>
 </body>
 </noframe>
 </html>

 En JavaScript
      Cas concrait : 3 domaines pointent sur le meme hebergement
 
 www.bois.fr --> http//www.xplorer.com/bois/index.html
 www.apia.com--> http//www.xplorer.com/apia/index.html
 www.xplorer.com--> http//www.xplorer.com/index2.html
 
 Voici la page index à créer
 
 <html>
 <head>
 <title>Untitled Document</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 </head>
 <body>
 <SCRIPT> // Redirige suivant l'URL du navigateur
 host=location.host; // Enregistre l'URL du navigateur
 if (host=='bois.fr') // Redirige si bois
 {window.location.href="http://www.xplorer.com/bois/index.html";}
 else if (host=='apia.com') // Redirige si apia
 {window.location.href="http://www.xplorer.com/apia/index.html";}
 else // Sinon on va sur index2
 {window.location.href="http://www.xplorer.com/index2.html";}
 </SCRIPT>
 </body>
 </html>

  Autre exemple en ASP
  <%
  Dim strNom
  strNom = Request.ServerVariables("SERVER_NAME")
  strNom = Ucase(strNom)
  If InStr(strNom, "DOMAINE1") <> 0 Then
   Response.Redirect "/sous_rep1/"
  ElseIf InStr(strNom, "DOMAINE2") <> 0 Then
   Response.Redirect "/sous_rep2/"
  End If
  %>

  En utilisant un fichier .htaccess
   Il suffit de placer à la racine du site un fichier .htaccess contenant la ligne suivante :
   Redirect /index.html http://www.mondomaine.com/index.php4

Commentaires

1. Le jeudi, mars 24 2005, 10:37 par Pat

Avec le .htaccess on peut egalement rediriger a la demande :

user@admin:/web/clients/s/supportn# less .htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^((www)\.)?domaine1.tld$ [NC]
RewriteRule ^$ /rep1/ [L,R=301]
RewriteCond %{HTTP_HOST} ^((www)\.)?domaine2.tld$ [NC]
RewriteRule ^$ /rep2/ [L,R=301]