Webdev – Comment rediriger ma page d’accueil automatiquement ?
Contexte — qui est concerné ?
Cette procédure s’adresse aux clients disposant d’un hébergement WEBDEV (offre payante ou gratuite). Elle permet de finaliser le déploiement en redirigeant automatiquement la page d’accueil (/
) vers votre application WEBDEV.
Objectif
- Indiquer à IIS où se trouve votre application.
- Forcer le HTTPS une fois le certificat installé.
Modèle de web.config
:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<!-- Redirige la racine du site vers votre application WEBDEV -->
<rule name="Redirect to webdev site" stopProcessing="true" enabled="false">
<match url="^$" />
<conditions />
<action type="Redirect" url="/NOM_APPLICATION" redirectType="Permanent" />
</rule>
<!-- (Optionnel) Forcer le HTTPS -->
<rule name="Force HTTPS" enabled="false" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Remplacer NOM_APPLICATION
Mettez le nom exact du dossier de votre application tel qu’il apparaît sous Sites
.
Exemple : si vos fichiers sont dans Sites\mon_application_test\...
, configurez :
<action type="Redirect" url="/mon_application_test" redirectType="Permanent" />
NB : Pensez aussi à activer la règle en changeant le enabled="false"
par enabled="true"
Note : Effet immédiat : l’URL racine de votre site (https://votre-domaine/) redirige automatiquement vers https://votre-domaine/mon_application.
Forcer le HTTPS (après la création du certificat SSL/TLS)
N’activez pas le HTTPS tant que le certificat n’est pas installé et lié au site, sinon vos visiteurs verront une alerte de sécurité.
Afin que nous mettions en place un certificat SSL/TLS pour votre site, veuillez nous en faire la demande via « contact@francelink.fr ».
Dès que nous vous confirmons la mise en place du certificat, passez la règle Force HTTPS à enabled="true"
:
<rule name="Force HTTPS" enabled="true" stopProcessing="true">
Questions fréquentes :
- Pourquoi le HTTPS n’est-il pas activé par défaut ?
Parce qu’un certificat valide et un binding 443 sont indispensables. Sans cela, forcer le HTTPS provoque des erreurs côté navigateur. Activez la règle uniquement après l’installation du certificat. - Où placer exactement
web.config
?
À la racine du dossierwww
de l’hébergement (et non dansSites
). Veuillez prêtez attention au nom du fichierweb.config
(et pasweb.config.txt
)
Dépannage rapide
Après toutes les modifications la redirection ne fonctionne toujours pas ?
Vérifier que la règle que vous avez mise en place est bien active (dans notre fichier d’exemple elle désactivée pour éviter les erreurs). Il faut mettre le paramètre enabled="true"
(cf-ci-dessous)
<rule name="Redirect to webdev site" stopProcessing="true" enabled="true">
<match url="^$" />
<conditions />
<action type="Redirect" url="/NOM_APPLICATION" redirectType="Permanent" />
</rule>
La redirection appliquée n’est pas celle du fichier web.config, que faire ?
Le problème vient peut-être d’une autre redirection configurée lors de votre déploiement.
Regardez si vous n’avez pas un fichier dans votre dossier de déploiement default.htm
dans lequel PCSoft aurait fait une redirection /AUTRE_REDIRECTION
dans l’exemple ci-dessous. Le cas échéant, ce fichier est prioritaire sur la redirection du web.config
et rentre en conflit. Vous avez désormais 2 méthodes, à vous de choisir celle qui vous convient le mieux 😉!
<!DOCTYPE html>
<html>
<head>
<meta name="generator" content="WEBDEV">
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>...</title>
<script>var sURLRebond = window.location.pathname.replace('index.php', '').replace('index.html', ''); if (sURLRebond.substr(-5).toLowerCase() === '.html' || sURLRebond.substr(-4).toLowerCase() === '.htm' || sURLRebond.substr(-4).toLowerCase() === '.php') sURLRebond = sURLRebond.split('/').slice(0, -1).join('/'); var sURLRebondSuite = "/AUTRE_REDIRECTION"; var sNomDeploiement = "_?WB_SITE_DEPL?_"; if (sNomDeploiement && sNomDeploiement !== ("_?WB_" + "SITE_DEPL?_")) sURLRebondSuite = sNomDeploiement; if (sURLRebond === "" || sURLRebond[sURLRebond.length - 1] !== '/') sURLRebond += '/'; if (sURLRebondSuite !== "" && sURLRebondSuite[0] === '/') sURLRebondSuite = sURLRebondSuite.substr(1); window.location.pathname = sURLRebond + sURLRebondSuite</script>
</head>
<body></body>
</html>