web-dev-qa-db-fra.com

Le même site produit "trop ​​de redirections" uniquement via cellulaire, pas via WiFi

I Hébergez un petit site Web chez un fournisseur hôte externe. Lorsque je l'ouvre depuis mon iPhone, j'obtiens des résultats différents selon la façon dont mon iPhone est connecté à Internet:

  • Lorsque la connexion est établie via WiFi, ma page s'ouvre toujours et fonctionne comme prévu
  • Lorsque la connexion est établie via Cellular, ma page produit toujours le message d'erreur suivant:

Sur Safari mobile:

Safari ne peut pas ouvrir la page car trop de redirections se sont produites.

Sur Chrome mobile:

Cette page ne fonctionne pas/vous redirige trop de fois.

Sur mobile Opera:

Ce site n'est pas accessible/trop de redirections HTTP.

Pour autant que je sache, la seule différence qui décide du résultat est le type de connexion Internet - WiFi vs Cellulaire. Je ne trouve aucune autre différence.

Étant donné que le site fonctionne bien via le réseau WiFi, j'ai exclu une boucle de redirection sur mon site (c'est la cause la plus souvent mentionnée de l'erreur "trop ​​de redirections"). J'ai également essayé de désactiver la prévention du suivi intersite, mais les résultats sont restés les mêmes. Est-ce que je manque quelque chose? Quelle pourrait être la cause de ce comportement étrange?

Au cas où cela serait pertinent, voici quelques points sur le site Web lui-même:

  • Le site Web est développé avec ASP.NET Core
  • J'accède au site via https dans les deux cas (via WiFi et via Cellular)
  • Le site se trouve sur un sous-domaine, qui utilise un certificat générique du domaine "principal"
  • Le site utilise l'authentification "scaffold-ed" ASP.NET Core, qui utilise des redirections et des cookies, et dispose de la fonctionnalité "se souvenir de moi".
8
dasblinkenlight

Je suis finalement tombé sur un correctif, même si je ne sais toujours pas pourquoi l'erreur ne se manifeste pas sur les ordinateurs de bureau et les connexions WiFi mobiles. Le problème est lié à l'hébergement de mon application Web sur IIS en mode hors processus et à l'appel de UseHttpsRedirection() pendant l'installation.

Ce qui se passe ensuite est décrit dans cette réponse : IIS, qui se connecte à mon hôte hors processus (Kestrel) via http, est redirigé et le navigateur de mon téléphone le détecte d'une manière ou d'une autre. Il existe également une deuxième redirection (la légitime) vers la page de connexion, que le navigateur du téléphone compte également. Maintenant, le navigateur du téléphone voit deux redirections, il affiche donc une erreur, car au plus une redirection est autorisée.

Le correctif consistait simplement à supprimer l'appel à UseHttpsRedirection(). Ce n'était pas nécessaire dans un scénario d'hébergement hors processus: IIS front est configuré pour exiger https, donc les clients sont quand même redirigés.

0
dasblinkenlight

Je pense que votre fournisseur de services utilise un serveur Apache. si oui, veuillez réinitialiser le fichier .htacess (il s'agit du fichier de configuration du serveur utilisé pour contrôler les paramètres du serveur, y compris les redirections).

0
Slim Coder

Cela peut être dû au fait que les navigateurs n'obtiennent pas le type de contenu correct

Pouvez-vous ajouter cela à votre tête dans la vue ou la mise en page (si vous utilisez)

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
0
Asfar Irshad