45 votes

Lien hypertexte Excel ne redirigeant pas correctement (bug ?)

J'ai un problème de lien hypertexte dans Excel : je clique sur, disons A1 , copier le lien dans celui-ci ( http://www.godaddy.com/domains/searchresults.aspx?ci=54814 ), faites un clic droit sur l'hyperlien et copiez la MÊME URL que le lien (si elle n'est pas automatiquement détectée et modifiée).

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, il fonctionne correctement (c'est-à-dire que je ne suis pas redirigé vers une URL différente).

Quelqu'un sait-il ce qui se passe ?

48voto

Thej Points 655

L'URL que vous utilisez a besoin de quelques informations supplémentaires provenant d'un cookie pour afficher la recherche. résultats 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 le cas. Avant de l'ouvrir dans votre navigateur, Excel exécute d'abord Découverte du protocole Microsoft Office . Il utilise un composant de Windows/Internet Explorer pour déterminer si l'URL fonctionne. (Il ne s'identifie pas comme Internet Explorer, mais comme "User Agent" : Microsoft Office Existence Discovery"). Et si les résultats sont (d'une manière ou d'une autre) corrects, il ouvrira alors le résultat de ce contrôle dans votre navigateur par défaut.

Manque de cookies (plus précisément : manque de une session ), GoDaddy met à disposition le composant Internet Explorer certaines réorientations . Le résultat s'ouvre dans votre navigateur par défaut. C'est l'URL que vous voyez.

Il est fort probable que votre navigateur par défaut ne soit pas Internet Explorer ? Dans ce cas, le fait de coller l'URL directement dans IE et de cliquer dessus, pour obtenir les cookies, pourrait également faire fonctionner le lien à partir d'Excel. (Juste pour tester ; ce n'est pas une solution permanente).

Vous aurez plus de chance en utilisant une URL qui ne dépend pas d'une information cachée provenant d'un cookie, comme par exemple http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com

12voto

fry Points 129

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

Excel ne devrait jamais créer de session cachée pour vérifier l'hyperlien. Il doit juste l'ouvrir, rien d'autre. Ils utilisent la même logique dans MS Word. Cela ne fonctionne pas non plus à partir de là. Lorsqu'Excel tente de vérifier le lien en arrière-plan, une nouvelle session est créée qui n'est pas authentifiée et qui est donc redirigée vers une page de connexion ou quelque chose du genre. Ensuite, au lieu d'ouvrir l'URL d'origine dans le navigateur, Excel ouvre l'URL de redirection. Ils savent vraiment comment rendre des choses simples compliquées.

11voto

Kaushik Baruah Points 111

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

  • Vous utilisez Microsoft Internet Explorer :
    • avec un serveur proxy
    • en utilisant 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.
  • Les ForceShellExecute la clé de registre n'est pas présente ou n'a pas la valeur 1

Vous pouvez appliquer la correction à partir d'ici :

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

2voto

q335r49 Points 121

C'est vraiment ennuyeux. Une solution consiste à créer un lien vers un fichier local qui redirige vers l'hyperlien. 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 m'y connais pas beaucoup en HTML, mais ce serait bien de pouvoir passer un argument (c'est-à-dire l'URL) à ce fichier html local.

1voto

Sean Copenhaver Points 2070

J'ai bien peur qu'il y ait trop de choses à ajouter en commentaire.

Le lien initial renvoie un code d'état 302

A partir de la normes w3c :

La ressource demandée réside temporairement Étant donné que la redirection peut être modifiée à l'occasion, le client DEVRAIT continuer à utiliser l'URI de la demande pour les demandes futures. Cette réponse n'est 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. Le champ Cache-Control ou Expires.

L'URI temporaire doit être indiqué dans le champ "Location" du formulaire de la réponse. À moins que la méthode de requête ne soit HEAD, l'entité de la réponse réponse DEVRAIT contenir une courte note hypertexte avec un lien hypertexte vers le(s) nouveaux URI.

Si le code d'état 302 est reçu en réponse à une demande autre que la demande GET ou HEAD, l'agent utilisateur NE DOIT PAS rediriger automatiquement la requête sauf si cela peut être confirmé par l'utilisateur, car cela pourrait modifier 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.

Donc, comme @xlm l'a indiqué, il s'agit d'une redirection temporaire de GoDaddy.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X