IIS HTTP à HTTPS redirection relative
J'ai récemment obtenu un certificat SSL pour mon site web et que vous souhaitez rediriger tout le trafic HTTPS. J'ai tout de go à https://mydomain.com
mais si quelqu'un entre http://mydomain.com/anotherpage
il tombe l'autre page et juste dirige l'utilisateur vers la page d'accueil.
Ma règle dans mon web.config
fichier ressemble à ceci:
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
J'ai aussi essayé https://{HTTP_HOST}{REQUEST_URI}
sans succès. Quelqu'un peut me dire ce que je dois faire pour rendre le site web rediriger vers la bonne version HTTPS de la page? J'ai le sentiment que ça a quelque chose à voir avec le modèle, mais je n'arrive pas à comprendre la syntaxe.
Je pense qu'il a quelque chose à faire avec le dos de référence. Que faire si vous changez le modèle de
Encore redirige tout retour à la page d'accueil.
C'est vraiment bizarre. Vous devrez utiliser les le suivi des demandes ayant échoué outil pour voir d'où vient le problème.
url=".*"
et la réécriture de url="https://{HTTP_HOST}/{R:0}"
?Encore redirige tout retour à la page d'accueil.
C'est vraiment bizarre. Vous devrez utiliser les le suivi des demandes ayant échoué outil pour voir d'où vient le problème.
OriginalL'auteur user2234612 | 2013-04-02
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une façon de le faire, et vous n'avez pas besoin du module de Réécriture.
Le suivant a fonctionné pour moi sur Windows 8 (IIS 8.5):
Maintenant tous HTTP demande de redirection vers votre site en HTTPS et à préserver le reste de l'URL.
génial ça marche! a également été en mesure de lier une adresse ip de redirection vers https! Merci!
OriginalL'auteur AndyH
Le modifier:
pattern="^OFF$"
?OriginalL'auteur Hubo
Je ne peux pas commenter pour l'instant ou je l'avais laisser cela comme un commentaire sous AndyH de réponse. La solution était la bonne, même si j'ai touché un seul hic (sans doute liée à l'utilisation d'Adobe Coldfusion server). Je voulais partager quelques nouvelles recherches, j'ai dû le faire pour tout autre malheureux qui peut se lancer dans.
Une fois mis en place, la redirection se termine toujours à cette url:
Le correctif de ce a été trouvé dans Adobe fil (https://forums.adobe.com/thread/1034854): j'ai dû changer une application de la piscine, les paramètres comme suit:
Vrai site (HTTPS obligatoire que contient le code et les répertoires virtuels)
Application de la piscine, les Paramètres Avancés:
Enable 32-Bit Applications : False
Http_Redirect site (HTTP liaison, est une coquille vide d'un dossier avec pas de répertoires)
Application de la piscine, les Paramètres Avancés:
Enable 32-Bit Applications : True
EDIT: un Autre détail, liée à la chaîne de requête de conservation:
Par suggestion dans ce post (http://www.developerfusion.com/code/4678/permanent-301-redirect-with-querystring-in-iis/)
Ajouter
$S$Q
à la fin de la domaine et assurez-vous que la caseRedirect all requests to exact destination
est cochée. Ensuite, il vous fera économiser de la chaîne de requête.OriginalL'auteur Kodora
J'ai eu le même problème où le
R:1
était à la baisse mes dossiers.Je le fixe comme ça.
OriginalL'auteur David Silva Smith
Je crois AndyH est la réponse la plus simple et la meilleure façon. J'ai trouvé à l'aide de la réécriture d'URL peut également entrer en conflit avec un code qui peut rediriger l'utilisateur vers une autre page. Souvent, IL a éclaté dans notre environnement. Mais Andy solution a fonctionné parfaitement. Je pense aussi qu'Andy est la solution sera de mettre moins de charge sur le serveur comme il n'a pas besoin d'examiner chaque url frapper pour une éventuelle ré-écrire conditions.
OriginalL'auteur Roger Waters
J'ai trouvé une solution de contournement:
Considérer ce qui, dans IIS est consired un site web: il suffit d'un ensemble de règles, le chemin dans lequel obtenir des fichiers et de ses liaisons.
En outre, il y a disponible une fonction appelée "Redirection HTTP" (inclus en standard dans IIS), que la redirection d'un hôte à un autre, en gardant tous les sous-répertoire (il fait un chemin relatif). La solution est de laisser juste la liaison HTTPS (port 443) dans votre site web, et de créer un autre avec la liaison sur HTTP (port 80) et de définir, pour cela, une redirection HTTP vers votre URL avec
https://
.Prenons l'exemple d'un site qui s'appelle
mytest
et de son urlhttp://www.mytest.com/
ethttps://www.mytest.com/
.Ensemble au lieu seulement de liaison sur
https://www.mytest.com/
, et de supprimer lehttp
de liaison. Puis créer un nouveau site web avec le même chemin d'accès local, appelémytest http
avec juste une liaison sur le port 80 (http://www.mytest.com/
) et fixée à celui-ci uneHTTP Redirect
àhttps://www.mytest.com/
.Simple et propre, et qui devrait être aussi rapide que directement l'url https pour l'utilisateur, parce que c'est juste une redirection interne. J'espère que peut travailler pour vous!
OriginalL'auteur Davide Cannizzo
Vous pouvez ajouter le module de Réécriture d'URL pour les services internet (IIS 7 ou plus) qui vous permet d'ajouter de créer le rediriger de façon visuelle. Le module peut être téléchargé ici.
Ce étape par étape tutoriel fait des merveilles pour moi et explique que lors de l'utilisation de ce module, tout ce qu'il fait réellement, c'est d'ajouter un peu de code pour votre
web.config
fichier en tant que tel:OriginalL'auteur Wouter Vanherck
J'ai trouvé que le
syntaxe ne fonctionne que pour le site web RACINE.fichier de configuration.
Si la règle de réécriture est appliqué à un site web virtuel.fichier de configuration, utilisez la propriété..
{URL} la syntaxe de la première barre oblique, le chemin d'accès virtuel, et tous les paramètres d'URL.
OriginalL'auteur Mike McDonald