2010-11-05 5 views
0

je l'ai trouvé et essayé les règles de Jeff trouvé here mais je ne peux pas le faire fonctionner exactement droite:IIS Rewrite (http https) avec sous-domaine

Ce que je besoin est d'avoir http://a.b.com aller à https://a.b.com (où est pas www, mais cette distinction ne devrait pas vraiment affecter la règle, devrait-elle? www est juste un autre sous-domaine, non?)

Où Jeff a (. *) la facturation /(.*), j'ai remplacé par (. *), mais ça ne marche pas.

Les résultats de mes tentatives produisent des erreurs de "boucle de redirection".

Cette réécriture est nouvelle pour moi.

Appréciez toute votre aide.

Répondre

1

Eh bien pas exactement la réponse que vous demandez, mais si vous l'utilisez par hasard sur une page ASP.net, vous pouvez ouvrir votre fichier Global.ASPX et dans la page "Application_BeginRequest" vous pouvez mettre:

Dim url As New System.UriBuilder(Context.Request.Url) 

    'Do our redirect if we need 
    If Context.Request.IsSecureConnection = False Then 

     url.Scheme = "https" 
     url.Port = -1 
     System.Web.HttpContext.Current.Response.Redirect(url.Uri.ToString()) 

    End If 
+0

Voici un lien que j'ai trouvé en utilisant l'ajout de réécriture à IIS7. N'y a pas encore essayé: http://www.iis-aid.com/articles/how_to_guides/redirect_http_to_https_iis_7 –

+0

Oui c'est ASP.NET. Je vais donner un exemple à votre exemple. J'essayais d'échapper à l'utilisation du code et d'essayer les nouveaux «trucs» de Rewrite. Merci. – Marc

+0

@Marc, vous devriez vraiment éviter les redirections ou réécrire les astuces si le but de l'utilisation de HTTPS est de fournir une sorte de sécurité. – Bruno

2

plutôt que d'utiliser les redirections, vous devez vous assurer que votre application (qui envoie à http://a.b.com/ envoie à https://a.b.com/ directement), sinon, la même demande sera sur HTTP simple, avant d'être redirigé vers HTTPS, ce qui contrecarre le point.

(Ce this other question pour plus de détails.)

+0

nos redirections dans le code pointent vers https, mais j'essaie de résoudre le problème où l'utilisateur tape directement l'URL et ne sait pas taper https. Donc à l'atterrissage, ils entrent sur http://a.b.com et ils sont envoyés à https ... similaires à gmail, par exemple. Merci pour la contribution. – Marc

+1

@ Marc, je l'obligerais justement à casser, justement, pour savoir quand il y a des erreurs de codage (bien que ça n'empêcherait pas l'incident). Si quelqu'un a tapé 'http://a.b.com/page/1?Parfois, par erreur, ils sont envoyés à 'https: // a.b.com' (vous seriez en mesure de savoir où il se trompe plus facilement). Une meilleure approche serait d'avoir 'http: // abcom' comme point d'entrée, en redirigeant vers' https: // secure.b.com' avec une adresse IP différente et rien d'autre sur le port 80, de sorte que 'http: // secure.b.com' échouerait toujours (bien que quelqu'un puisse toujours tromper la demande pour être valide). – Bruno