-1

J'ai donc un site web statique hébergé sur s3. Je l'ai configuré pour fonctionner avec le gestionnaire de certificats AWS, route 53, et le cloud avant afin que le site soit accessible avec https.Pourquoi mon site hébergé s3 que j'ai configuré SSL pour via cloud ne fonctionne que sporadiquement?

Il semble que ce soit en quelque sorte de travailler après beaucoup de violon mais il se brise ensuite bizarrement.

Par exemple, je peux aller au pas de problème suivant:

www.myurl.com 
https://www.myurl.com/ 
https://myurl.com/ 
http://myurl.com/ 

Great! Mais alors je clique sur un lien sur cette page d'accueil pour m'amener à une autre page nommée login.html mais cela ne fonctionne que pour quelques-uns des liens ci-dessus. Par exemple, si je vais à https://myurl.com et cliquez sur le lien, je parviens à naviguer avec succès vers https://myurl.com/login.html. Toutefois, si je vais à https://www.myurl.com/ et que je clique sur le même lien, il continue de charger et n'indique jamais la page.

Il y a d'autres choses bizarres qui se passent avec d'autres pages mais j'imagine qu'elles sont liées à ce problème et je ne peux pas le comprendre du tout. Pourquoi cela fonctionne-t-il mais uniquement de manière sporadique et uniquement avec certaines structures d'url?

Modifier: Donc, le login.html a commencé à se charger à partir de https://www.myurl.com quand le bouton a été cliqué mais l'affichage du fichier login.html est complètement foiré et regarde partout/foiré. Fonctionne toujours bien de https://myurl.com cependant.

Un autre indice: Je viens de réaliser quand je vais à mon site via le front de nuages ​​url/domaine, il est tout foiré mise en page sage aussi bien - intéressant ...

Mise à jour: Je foiré autour avec quelques petites choses - semble avoir corrigé certains problèmes de liaison et le problème restant est presque certainement lié à angularJS et à ses interactions avec cloud front. Le message d'erreur suivant est dans ma console et je soupçonne qu'il peut être un indice quant au problème.

angular.min.js:107 ReferenceError: people is not defined 
    at eval (eval at <anonymous> (jquery.js:2), <anonymous>:4:29) 
    at eval (<anonymous>) 
    at jquery.js:2 
    at Function.globalEval (jquery.js:2) 
    at m.fn.init.domManip (jquery.js:3) 
    at m.fn.init.after (jquery.js:3) 
    at b (angular.min.js:188) 
    at Object.enter (angular.min.js:189) 
    at angular.min.js:283 
    at angular.min.js:54 
+0

Votre page référence-t-elle des scripts, des images ou des feuilles de style? Sont-ils référencés via des liens relatifs (par exemple 'scripts/foo.css) ou une adresse absolue (par exemple' http: // myurl.com/scripts/foo.css')? Vous pouvez utiliser les outils de débogage du navigateur pour voir quels fichiers ont été/n'ont pas été téléchargés - regardez d'abord dans la section Réseau. –

+0

Il existe des noms de domaine comme http://example.com qui sont * officiellement * réservés lorsque vous avez besoin d'un exemple d'URL. Veuillez ne pas créer de noms de domaine d'autres personnes dans les questions. –

+0

Quels paramètres avez-vous sur votre cloudfront? – Rajesh

Répondre

0

Il semble que votre problème est directement lié au préfixe www explicite dans votre domaine, et est quelque chose que vous pouvez reproduire facilement.

Pour moi, votre problème vient du fait qu'il ya une restriction/politique csp sur votre api ou d'une autre ressource (semble que le people est somethings qui est tiré par les cheveux) et seul le domaine sans www est autorisé à y accéder, ainsi l'erreur étant uniquement présente sur la version www.

Vous pourriez essayer de trouver la règle de blocage, mais mon conseil serait plutôt de "se débarrasser" du domaine www. La convention générale est que vous ne voulez pas que vos utilisateurs parcourent votre site Web sur des URL différentes, préférez plutôt une redirection du domaine préfixé vers le domaine non préfixé. De cette façon, les utilisateurs utiliseront toujours les mêmes liens, ils évitent la duplication du contenu qui est mauvais pour le référencement et sont moins pénibles pour les certificats SSL.

Il y a un good article sur la façon de mettre un redirect en place avec un site Web S3 statique, fondamentalement, vous devez créer un nouveau seau avec le même nom de votre origine www, allez le seau Propriétés, Site Web statique Hébergement section et rediriger toutes les demandes vers un autre nom d'hôte. L'article explique plus en détail comment le configurer pour les domaines https que je ne développerai pas ici, mais je vous invite à le consulter.