Le lien hypertexte Excel ne redirige pas correctement (bug?)


33

J'ai un problème de lien hypertexte Excel: je clique sur, disons A1, copiez le lien qu'il contient ( http://www.godaddy.com/domains/searchresults.aspx?ci=54814) , faites un clic droit sur le lien hypertexte et copiez cette même URL comme lien (si elle n'est pas détectée et modifiée automatiquement).

Lorsque je clique dessus, je suis redirigé vers http://www.godaddy.com/domains/search.aspx?ci=53972.

Si je copie et colle le lien directement dans le navigateur, cela fonctionne très bien (c'est-à-dire que je ne suis pas redirigé vers une URL différente).

Est-ce que quelqu'un sait ce qui se passe?


3
J'ai rencontré le même problème avec une URL qui nécessite une authentification. Si vous cliquez sur une feuille de calcul Excel vers une URL qui nécessite que vous soyez connecté à une session basée sur les cookies, la plupart des sites redirigeront l'agent de découverte Microsoft vers une page de connexion. À moins que le site ne soit suffisamment intelligent pour rediriger la demande de page de connexion vers la demande d'origine dans le cas où l'utilisateur est déjà connecté, vous finissez par être obligé de vous connecter manuellement une fois la page chargée dans votre navigateur réel. L'expérience utilisateur est que tous les liens semblent être déconnectés.
Joe

Réponses:


36

L'URL que vous utilisez a besoin de plus d'informations à partir d'un cookie pour afficher les résultats de la recherche plutôt que la page de recherche. Collez l'URL dans un autre navigateur (ou supprimez vos cookies) et vous obtiendrez les mêmes résultats.

Cliquer sur une URL dans Excel semble l'ouvrir dans votre navigateur par défaut. Mais ce n'est pas vraiment vrai. Avant de l'ouvrir dans votre navigateur, Excel exécute d'abord la découverte du protocole Microsoft Office . Cela utilise un composant Windows / Internet Explorer pour déterminer si l'URL fonctionne. (Il ne s'identifie pas comme Internet Explorer, mais comme "Agent utilisateur: découverte de l'existence de Microsoft Office".) Et si les résultats sont (en quelque sorte) corrects, il ouvrira le résultat de cette vérification dans votre navigateur par défaut.

En l'absence de cookies (plus précisément: sans session ), GoDaddy donne à ce composant Internet Explorer une redirection . Et le résultat est ouvert dans votre navigateur par défaut. C'est l'URL que vous voyez.

Votre navigateur par défaut n'est probablement pas Internet Explorer? Ensuite, coller l'URL dans IE directement et cliquer dessus, pour obtenir les cookies, pourrait également faire fonctionner le lien à partir d'Excel. (Juste pour les tests; ce n'est pas une solution permanente.)

Vous aurez plus de chance d'utiliser une URL qui ne repose pas sur certaines informations cachées d'un cookie, comme http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com


Excellente information, merci. Je vois la même chose dans Word lors de l'ouverture d'un lien pour lequel vous devez être connecté.
marcvangend

1
Cela devrait être marqué comme la bonne réponse.
Selosindis

1
quelle "fonctionnalité"
CountMurphy

Je trouve qu'Excel (sous Windows) ne suit pas la redirection vers sa conclusion. Avec un lien wikipedia ( wikipedia.org/wiki/Merck%20Sharp%20%26%20Dohme%20Corp ), il y a trois redirections, mais Excel rapporte un 404. Le lien fonctionne bien sur OSX Excel.
technomage

10

C'est la faute d'Excel. Si vous collez le lien dans la messagerie Outlook ou WordPad et que vous ouvrez le lien à partir de là, cela fonctionnera correctement.

Excel ne doit jamais créer de session masquée pour vérifier le lien hypertexte. à quoi ça sert. Il suffit de l'ouvrir, rien d'autre. Ils utilisent la même logique dans MS Word. Cela ne fonctionne pas non plus à partir de là. Lorsque Excel essaie de vérifier le lien en arrière-plan, une nouvelle session est créée qui n'est pas authentifiée afin qu'elle soit redirigée vers la page de connexion ou quelque chose. Après cela, au lieu d'ouvrir l'URL d'origine dans le navigateur, Excel ouvre l'URL de redirection. Ils savent vraiment comment compliquer les choses simples.


Ce n'est pas Excel qui crée des sessions. C'est le site Web de GoDaddy qui fait cela. La copie de l'URL d'un navigateur à un autre n'obtiendra PAS non plus les résultats de la recherche. L'utilisation du classeur Excel sur un autre ordinateur échouera également. (En dehors de cela: en effet, Excel gâche en essayant d'être intelligent; voir les autres réponses pour plus d'informations de fond.)
Arjan

La raison en est que les produits Office traitent tous les liens de la même manière et ne savent pas si vous essayez de créer un lien vers un autre document Office ou une page Web. Il essaie de régler cela.
pbarney

8

Il s'agit d'un bogue Microsoft connu où les hyperliens sont redirigés vers une autre page si:

  • Vous utilisez Microsoft Internet Explorer:
    • avec un serveur proxy
    • lors de l'utilisation d'un pare-feu qui n'autorise pas les requêtes HTTP sur votre réseau local
  • Internet Explorer n'est pas votre navigateur par défaut.
  • La ForceShellExecuteclé de registre n'est pas présente ou n'est pas définie sur 1

Vous pouvez appliquer le correctif à partir d'ici:

http://support.microsoft.com/kb/218153


Cette correction a également résolu un problème connexe pour moi. Lorsque je cliquais sur des liens dans PowerPoint, j'obtenais parfois le message d'erreur "impossible de télécharger les informations demandées". L'application du correctif sur ce lien a résolu le problème. Notez que j'utilise PowerPoint 2010 sur une machine Windows 10 avec Chrome (v 60) comme navigateur par défaut.
Paul de Barros

1

Trop ici pour ajouter un commentaire, je le crains.

Le lien initial renvoie un code d'état 302

D'après les normes w3c :

La ressource demandée réside temporairement sous un URI différent. Étant donné que la redirection peut être modifiée à l'occasion, le client DEVRAIT continuer à utiliser l'URI de demande pour les demandes futures. Cette réponse ne peut être mise en cache que si elle est indiquée par un champ d'en-tête Cache-Control ou Expires.

L'URI temporaire DEVRAIT être donné par le champ Emplacement dans la réponse. Sauf si la méthode de demande était HEAD, l'entité de la réponse DEVRAIT contenir une courte note hypertexte avec un lien hypertexte vers les nouveaux URI.

Si le code d'état 302 est reçu en réponse à une demande autre que GET ou HEAD, l'agent utilisateur NE DOIT PAS rediriger automatiquement la demande, sauf si elle peut être confirmée par l'utilisateur, car cela pourrait changer les conditions dans lesquelles la demande a été émise.

  Note: RFC 1945 and RFC 2068 specify that the client is not allowed
  to change the method on the redirected request.  However, most
  existing user agent implementations treat 302 as if it were a 303
  response, performing a GET on the Location field-value regardless
  of the original request method. The status codes 303 and 307 have
  been added for servers that wish to make unambiguously clear which
  kind of reaction is expected of the client.

Ainsi, comme l'a indiqué @xlm, GoDaddy fait une redirection temporaire.

Il semblerait que, lorsqu'elle est appelée à partir d'Excel, la redirection n'est pas toujours respectée.


1
J'aurais ajouté cela en tant que commentaire à la réponse de @ xlm mais c'est trop gros. Je me rends compte que ce n'est pas une réponse.
Julian Knight

1

J'ai trouvé ce problème surgit lorsque l'URL cible est un site sécurisé qui nécessite une connexion. Même si je suis déjà connecté dans une autre fenêtre, cela ne fonctionnera pas correctement. Si je coupe et colle l'URL dans un nouvel onglet ou une nouvelle fenêtre, Chrome est suffisamment intelligent pour constater que je me suis déjà authentifié et ouvre correctement la nouvelle page. Cependant, si je ne suis pas connecté au site, je serai redirigé vers la page de connexion, comme prévu.
Mais lorsque vous cliquez sur la même URL exacte dans Excel, avec les mêmes conditions, j'obtiens uniquement la page de connexion, ou mon site distant me dit simplement qu'il s'agit d'un navigateur non pris en charge.
Le problème vient clairement d'Excel, car si je prends cette feuille de calcul exacte, l'enregistre au format PDF, les hyperliens qui s'affichent dans le PDF fonctionnent parfaitement bien lorsque vous cliquez dessus.
Outre la correction de cette «fonctionnalité» manifestement involontaire d'Excel / Office essayant de vérifier les liens que d'autres ont publiés, la seule solution de contournement que j'ai trouvée était de créer une page de redirection locale qui pourrait prendre mes paramètres uniques dans l'URL et ouvrir une nouvelle fenêtre comme suit (merci à d'autres pour le code JavaScript) Rediriger en changeant l'hyperlien Excel en quelque chose comme http://mylocaldomain.com/redirect.html?ID=12345 , où la page de redirection se trouve sur un serveur local que vous contrôlez et le paramètre 12345 rend l'URL redirigée vers l'entrée particulière requise. Pour mon SS avec environ 10000 liens, cela fonctionne très bien.

Redirect.html est le suivant.

<!DOCTYPE html>
<html>
<script>
function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,    
    function(m,key,value) {
      vars[key] = value;
    });
    return vars;
  }
    document.getElementById("demo").innerHTML=getUrlVars()["type"];
    var varbaseurl=[put your base url here]
    window.location = varbaseURL  + getUrlVars()["type"]
</script>
<body> 
redirecting to: <p id=demo></p>

1

C'est vraiment ennuyeux. Une solution consiste à créer un lien vers un fichier local qui redirige vers le lien hypertexte. Par exemple, quelque chose comme:

<HTML>
<HEAD>
<TITLE>Redirect</TITLE>
<META HTTP-EQUIV="refresh" CONTENT="0;URL=http://www.google.com">
</HEAD>
<BODY>
Redirecting...
</BODY>
</HTML>

Je ne sais pas grand chose sur HTML, mais ce serait bien de pouvoir passer un argument (ie, l'URL) à ce fichier html local.


0

Je peux reproduire votre problème mais ce n'est pas un problème Excel. C'est en fait Godaddy qui vous redirige vers le deuxième lien. Essayez de coller ce lien dans votre navigateur et vous le verrez rediriger vers le second.

Remarques: testé sur Excel 2007, Firefox 13.0.1


1
hm .. mais quand je colle le lien dans le navigateur je reste sur le premier lien .. c'est pourquoi c'est bizarre .. comment godaddy est-il capable de détecter la différence entre coller le lien dans l'url ou naviguer à partir d'un fichier excel?

Ils ne le sont pas, essentiellement lorsque votre navigateur tente de visiter le premier lien, leur serveur répond en vous envoyant au second. Cela n'a rien à voir avec Excel. J'ai également vérifié cela sur Chrome. Je ne peux pas reproduire les circonstances que vous décrivez où vous les entrez dans votre navigateur et il ne redirige pas. Quel navigateur utilisez-vous?

j'utilise Chrome, mais je vois ce qui se passe maintenant .. la demande est basée sur la session .. donc quand j'ouvre à partir d'un autre navigateur, je ne peux pas voir le lien .. et en quelque sorte la session est interrompue lors de l'accès à partir d'Excel fichier ..

Essayez de reproduire ces circonstances à nouveau avec Chrome, je suis sûr que vous vous retrouverez au deuxième lien. Excel vient d'ouvrir le lien avec votre navigateur par défaut. De plus, si cela résout votre Q, veuillez le marquer merci!

1
désolé mais cela ne résout pas le problème .. Excel ouvre également le lien avec Chrome, c'est pourquoi il est plus étrange .. quand je colle ce même lien dans Chrome - cela fonctionne .. mais quand je clique sur un lien hypertexte, il ne le fait pas .. quand je l'ouvre en chrome en incognito, ça ne marche pas non plus ...

0

J'ai eu le même problème que le site que j'allais inclure le traitement et la récupération de la base de données sur un timbre à date. Je copierais l'URL dans une nouvelle cellule. changer la date. cliquez sur la nouvelle URL, MAIS récupérez l'ancienne URL.

Cependant, si j'ai cliqué sur la nouvelle cellule d'URL, allez dans la fenêtre d'affichage de la cellule, cliquez sur mon curseur n'importe où dans cette fenêtre, puis cliquez sur une cellule différente, les valeurs de date de l'URL changent et en cliquant sur l'URL, je reçois les bonnes données.

Tout cela dans IE.

Il semble que lorsque vous copiez l'URL, elle apporte les informations sur le site URL avec elle. Je ne sais pas quelle magie se produit lorsque j'ouvre la cellule et ne la modifie pas, mais cela change l'URL lorsque vous placez votre pointeur dessus. Je suis un aimant régulier pour ce genre de choses dans Excel. Probablement pourquoi je ne lui fais pas confiance.



0

J'ai pu enquêter davantage sur ce sujet alors que j'essayais d'obtenir un classeur Excel à lier à mon propre serveur Web. J'ai remarqué que cliquer sur un lien dans Excel produisait trois requêtes vers le serveur.

  1. GET HEAD (avec session temporaire)
  2. GET (avec session temporaire)
  3. GET (avec session réelle)

Mais si la page liée redirigeait l'utilisateur, je n'ai pas vu le troisième GET. Au lieu de cela, le deuxième GET a été redirigé vers une nouvelle page et la session est restée temporaire. Ce qui signifie que si la page cible nécessite une authentification, l'utilisateur sera redirigé vers une page de connexion même s'il est déjà authentifié.

Cela m'a conduit à l'idée de créer une page de destination qui redirige l'utilisateur vers la page cible si l'utilisateur est authentifié. Et il fonctionne. Lorsque le troisième GET est reçu, le serveur remarque que l'utilisateur est authentifié et redirige vers la page cible. Pour les utilisateurs non authentifiés, la page de destination affiche un lien vers la page cible. Et lorsque l'utilisateur clique sur le lien, l'utilisateur sera redirigé vers la page de connexion.


-1

Nous parvenons à reproduire le problème et nos conclusions de développeur indiquent que lorsque vous collez un lien dans Microsoft Excel, Excel préfigure le lien avec une marque d'ordre d'octets (BOM). Lorsque ce lien est chargé dans le navigateur, il ne supprime pas la nomenclature de l'URL.

Lors du chargement de l'URL, le navigateur effectue plusieurs tests pour vérifier que la connexion est sécurisée (https) et cela échoue en raison de la nomenclature erronée. Cela provoque finalement l'erreur d'état du relais, car ce paramètre doit être envoyé sur un canal sécurisé.

Vous pouvez reproduire ce problème en copiant la cellule et en la collant directement dans Firefox, supprimant ainsi Excel de l'image. Cela échoue également (parfois d'une manière légèrement différente) mais souffre du même problème racine. Si vous supprimez le "https" de l'URL collée et que vous le retapez simplement, vous remarquerez que le lien fonctionne désormais correctement.

Il s'agit d'une limitation du fait qu'Excel stocke la nomenclature dans l'URL et de la manière dont le navigateur ne peut pas interpréter la nomenclature.

Pour le moment, la seule solution de rechange à laquelle nous pourrions penser est de copier le lien URL et de le coller dans le navigateur et d'accéder à la page.

En outre, je vous suggère personnellement de lever un ticket de support auprès de Microsoft et je pense qu'ils pourraient mieux comprendre ce problème pour vous aider à ce sujet.


-1

Pour résoudre ce problème sur certains sites, je crée simplement un fichier HTML qui redirige vers le site en question, puis pointe le lien hypertexte dans Excel vers ce fichier et cela fonctionne très bien ..

échantillon:

<HTML>
<HEAD>
<TITLE>Redirect</TITLE>
<META HTTP-EQUIV="refresh" CONTENT="0; URL=https://citiretailservices.citibankonline.com/RSnextgen/svc/launch/index.action?siteId=PLCN_GOODYEAR&langId=en_US#signon">
</HEAD>
<BODY>
Custom Redirect by Jason...
</BODY>
</HTML>

-1

J'ai récemment eu ce problème où une fonction de lien hypertexte dans Excel pointait vers une redirection 301 dans un site WordPress. J'ai mis à jour le 301 pour pointer vers un nouveau document, mais le lien dans Excel a continué à afficher l'ancien document. Je n'ai pu résoudre ce problème qu'en effaçant le cache de documents dans IE, même si j'exécute Excel 2016 sur une machine Windows 10. J'espère que cela t'aides.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.