web-dev-qa-db-fra.com

Forcer www à toujours montrer dans la barre d'adresse?

J'ai créé un site Web pour un client (mon premier travail indépendant!) Et mon client est généralement satisfait, mais il souhaite que la barre d'adresse affiche toujours la partie www., même si elle n'est pas dactylographiée. .

Est-ce possible? J'ai acheté le domaine via 123-reg et j'héberge le site Web sur Azure (en tant que site Web Azure). Je suppose que je dois ajouter un enregistrement A aux paramètres DNS, est-ce correct? Ou est-ce un paramètre que je dois changer sur Azure? Ou quelque chose sur le fichier web.config?

Le site a été créé avec ASP.Net MVC4.

Merci

1
JMK

Rediriger les non-www vers www dans MCV4

Éditez global.asax et ajoutez:

protected void Application_BeginRequest (object sender, EventArgs e)
{
   if (!Request.Url.Host.StartsWith ("www") && !Request.Url.IsLoopback)
   {
      UriBuilder builder = new UriBuilder (Request.Url);
      builder.Host = "www." + Request.Url.Host;
      Response.StatusCode = 301;
      Response.AddHeader ("Location", builder.ToString ());
      Response.End ();
   }
}
2
Simon Hayter

Si vous ne pouvez pas modifier votre configuration Apache, vous pouvez essayer http://wwwizer.com (haut de la page) en indiquant le domaine NAKED à l'adresse IP de WWWizer et votre sous-domaine WWW à votre serveur. Cela redirigera toutes les demandes vers le sous-domaine WWW.

1
ionFish

Oui, vous pouvez rediriger les URL sans le www pour les inclure ensuite. Cela dépend de votre hôte. Certains hôtes ont une option pour cela et vous pouvez simplement appuyer sur un bouton pour que cela se produise.

La plupart des hôtes desservent les sites www et non-www à partir du même répertoire sur un serveur Apache. Dans ce cas, vous devrez utiliser des règles de réécriture pour le faire.

RewriteEngine On
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]
0
Stephen Ostermiller