Forcer une page spécifique pour utiliser le protocole HTTPS avec angularjs
Dans notre application, nous avons une page de paiement que nous voulons utiliser SSL sur parce que nous sommes à la manipulation des informations de carte de crédit. Nous avons déjà mis en place des règles de réécriture apache pour rediriger une demande à la page spécifique de HTTPS-qui prend soin de toutes les demandes présentées directement à la page de paiement ( http://oursite.com/pay ).
Cependant, la plupart de navigation dans notre site se fait via des url relatives et states
à l'aide de ui-router
dans angularjs et nous avons trouvé que apache ne pas attraper ces demandes et donc sert la page sans SSL.
EX Si un utilisateur clique sur un lien avec ui-sref='pay'
ui-router
charge le modèle et ravive l'état, à aucun moment, est une requête faite au serveur pour une nouvelle uri si apache ne peut pas rediriger vers https
Est-il un moyen de forcer l'interface utilisateur du routeur(ou angulaire en général) de contraindre un état à utiliser le protocole HTTPS, sans avoir à modifier tous les liens pour recharger l'ensemble du site?
Bien sûr, cela peut aussi être une lacune dans nos règles de réécriture...Voici ce que nous avons jusqu'à présent
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} /pay
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]
La deuxième série de règles à faire respecter html5mode pour notre application.
RewriteCond %{REQUEST_FILENAME} !-f
est en place pour que angulaire peut récupérer le modèle de paiement pour l'état, sans avoir besoin de SSL. Est-ce correct?
- Oui, il est à la recherche de bonnes.
- mais j'ai besoin d'une solution pour forcer https côté client que du bien!
- Qu'entendez-vous par
forcing https client-side
? Vous souhaitez faire via JS au lieu de .htaccess? - Si un utilisateur clique sur un lien avec
ui-sref='pay'
ui-router
charge le modèle et ravive l'état, à aucun moment, est une requête faite au serveur pour une nouvelle uri si apache ne peut pas rediriger vers https. Les règles de réécriture couvrir les cas où les gens vont directement àdomain.com/pay
mais pas les cas où l'interface utilisateur du routeur gère la navigation. J'ai besoin de faire l'interface utilisateur du routeur de rediriger sur lapay
état de https. Soit ça, ou faire tous les liens vers/pay
absoluehrefs
que je ne voudrais pas faire..
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire, bien que a été à l'aide de $routeProvider dans un SPA. Ce que j'ai fait était de faire une redirection à l'intérieur du contrôleur:
Ce bien que ne recharger toutes les ressources. Toutefois, cela n'arrive qu'une fois lors d'un changement de mode SSL.
Note, la fonction est en fait dans le service, de sorte que peut être appelée à partir de n'importe où.
J'espère que cette aide.
replace('http', 'https')
- Je vous conseille de l'utiliser avec prudence, car il peut y avoir plusieurs occurrences de 'http' chaîne de caractères dans l'URL.