it-swarm.com.de

Excel-Hyperlink leitet nicht richtig um (Fehler?)

Ich habe ein Excel-Hyperlink-Problem: Ich klicke auf, sagen wir A1, kopiere den darin enthaltenen Link (http://www.godaddy.com/domains/searchresults.aspx?ci=54814), klicke mit der rechten Maustaste auf den Hyperlink und kopiere die gleiche URL als Link (wenn sie nicht automatisch erkannt und geändert wird).

Wenn ich darauf klicke, werde ich zu http://www.godaddy.com/domains/search.aspx?ci=53972 weitergeleitet.

Wenn ich den Link direkt in den Browser kopiere und einfüge, funktioniert er einwandfrei (d. H. Ich werde nicht zu einer anderen URL umgeleitet).

Weiß jemand, was los ist?

29
Andrej

Die URL, die Sie verwenden, benötigt mehr Informationen aus einem Cookie, um die Suchergebnisse und nicht die Suchseite anzuzeigen. Fügen Sie die URL in einen anderen Browser ein (oder entfernen Sie Ihre Cookies) und Sie erhalten die gleichen Ergebnisse.

Wenn Sie in Excel auf eine URL klicken, wird sie anscheinend in Ihrem Standardbrowser geöffnet. Aber das stimmt nicht wirklich. Vor dem Öffnen in Ihrem Browser führt Excel zunächst Microsoft Office Protocol Discovery aus. Hierbei wird mithilfe einer Windows/Internet Explorer-Komponente ermittelt, ob die URL funktioniert. (Es identifiziert sich nicht als Internet Explorer, sondern als "User Agent: Microsoft Office Existence Discovery".) Und wenn die Ergebnisse (irgendwie) in Ordnung sind, wird das Ergebnis geöffnet . Aktivieren Sie dazu Ihren Standardbrowser.

Ohne die Cookies (genauer: ohne eine Sitzung ) gibt GoDaddy dieser Internet Explorer-Komponente eine Umleitung . Das Ergebnis wird in Ihrem Standardbrowser geöffnet. Das ist die URL, die Sie sehen.

Höchstwahrscheinlich ist Ihr Standardbrowser nicht Internet Explorer? Wenn Sie die URL dann direkt in IE einfügen und darauf klicken, um die Cookies abzurufen, funktioniert der Link möglicherweise auch in Excel. (Nur zum Testen; es ist keine dauerhafte Lösung.)

Sie werden mehr Glück haben, wenn Sie eine URL verwenden, die sich nicht auf verborgene Informationen aus einem Cookie stützt, wie http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com

29
Arjan

Dies ist ein Excel-Fehler. Wenn Sie den Link in Outlook-E-Mail oder WordPad einfügen und von dort aus den Link öffnen, funktioniert er ordnungsgemäß.

Excel sollte niemals eine versteckte Sitzung erstellen, um den Hyperlink zu überprüfen. Was ist der Sinn davon. Es muss nur geöffnet werden, sonst nichts. Sie verwenden die gleiche Logik in MS Word. Von dort aus geht es auch nicht. Wenn Excel versucht, den Link im Hintergrund zu überprüfen, wird eine neue Sitzung erstellt, die nicht authentifiziert ist, sodass sie zur Anmeldeseite oder Ähnlichem umgeleitet wird. Danach öffnet Excel die Umleitungs-URL, anstatt die ursprüngliche URL im Browser zu öffnen. Sie wissen wirklich, wie man einfache Dinge kompliziert macht.

10
fry

Dies ist ein bekannter Microsoft-Fehler, bei dem Hyperlinks auf eine andere Seite umgeleitet werden, wenn:

  • Sie verwenden den Microsoft Internet Explorer:
    • mit einem Proxy-Server
    • bei Verwendung einer Firewall, die keine HTTP-Anforderungen in Ihrem lokalen Netzwerk zulässt
  • Internet Explorer ist nicht Ihr Standardbrowser.
  • Der Registrierungsschlüssel ForceShellExecute ist nicht vorhanden oder nicht auf 1 festgelegt

Sie können das Update von hier aus anwenden:

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

7
Kaushik Baruah

Es ist definitiv ärgerlich. Eine Problemumgehung besteht darin, eine Verknüpfung zu einer lokalen Datei herzustellen, die auf den Hyperlink umleitet. Zum Beispiel so etwas wie:

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

Ich weiß nicht viel über HTML, aber es wäre schön, ein Argument (dh die URL) an diese lokale HTML-Datei übergeben zu können.

1
q335r49

Zu viel hier, um einen Kommentar hinzuzufügen, fürchte ich.

Die ursprüngliche Verknüpfung gibt einen 302-Statuscode zurück

Aus den w3c-Standards :

Die angeforderte Ressource befindet sich vorübergehend unter einem anderen URI. Da die Umleitung gelegentlich geändert werden kann, SOLLTE der Client den Request-URI für zukünftige Anforderungen weiterhin verwenden. Diese Antwort kann nur zwischengespeichert werden, wenn dies durch ein Cache-Control- oder Expires-Headerfeld angezeigt wird.

Der temporäre URI MUSS vom Feld Ort in der Antwort angegeben werden. Sofern die Anforderungsmethode nicht HEAD war, MUSS die Entität der Antwort eine kurze Hypertextnotiz mit einem Hyperlink zu den neuen URIs enthalten.

Wenn der 302-Statuscode als Antwort auf eine andere Anforderung als GET oder HEAD empfangen wird, DARF der Benutzeragent die Anforderung NICHT automatisch umleiten, es sei denn, er kann vom Benutzer bestätigt werden, da dies die Bedingungen ändern kann, unter denen die Anforderung ausgestellt wurde.

  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.

Wie @xlm bereits sagte, führt GoDaddy eine temporäre Umleitung durch.

Es scheint, dass die Weiterleitung beim Aufrufen aus Excel nicht immer berücksichtigt wird.

1
Julian Knight

Ich konnte dies weiter untersuchen, als ich versuchte, eine Excel-Arbeitsmappe zu erstellen, die mit meinem eigenen Webserver verknüpft werden konnte. Ich habe festgestellt, dass durch Klicken auf einen Link in Excel drei Anfragen an den Server gestellt wurden.

  1. GET HEAD (mit temporärer Sitzung)
  2. GET (mit temporärer Sitzung)
  3. GET (mit echter Sitzung)

Aber wenn die verlinkte Seite den Benutzer umleitete, konnte ich das dritte GET nicht sehen. Stattdessen wurde das zweite GET auf eine neue Seite umgeleitet und die Sitzung blieb vorübergehend. Das heißt, wenn die Zielseite eine Authentifizierung erfordert, wird der Benutzer auf eine Anmeldeseite umgeleitet, auch wenn er tatsächlich bereits authentifiziert ist.

Dies führte mich zu einer Idee, eine Zielseite zu erstellen, die den Benutzer zur Zielseite umleitet, wenn der Benutzer authentifiziert ist. Und es funktioniert. Wenn das dritte GET empfangen wird, bemerkt der Server, dass der Benutzer authentifiziert ist, und leitet zu der Zielseite weiter. Für nicht authentifizierte Benutzer wird auf der Zielseite ein Link zur Zielseite angezeigt. Wenn der Benutzer auf den Link klickt, wird er zur Anmeldeseite umgeleitet.

0
Mika

Ich kann Ihr Problem wiederholen, es ist jedoch kein Excel-Problem. Es ist eigentlich Godaddy, der Sie zum zweiten Link umleitet. Wenn Sie diesen Link in Ihren Browser einfügen, wird er auf den zweiten umgeleitet.

Hinweise: Getestet unter Excel 2007, Firefox 13.0.1

0
xlm

Ich habe dieses Problem gelöst, indem ich eine Google-Suche in der URL durchgeführt und die URL der Google-Ergebnisseite für den Hyperlink verwendet habe

z.B. Für sweettoothrewards.com habe ich https://www.google.ca/?gfe_rd=cr&ei=xwK5VY-LG8KC8QeGn4LoDw&gws_rd=ssl#q=+sweettoothrewards.com verwendet Im Opernbrowser bei mir nicht angemeldet.

0
mike s

Ich hatte das gleiche Problem, nur die Site, auf der ich Daten auf einem Datumsstempel verarbeiten und abrufen wollte. Ich würde die URL in eine neue Zelle kopieren. ändere das Datum. Klicken Sie auf die neue URL, ABER Sie erhalten die alte URL.

Wenn ich jedoch auf die neue URL-Zelle geklickt habe, gehe zum Zellenanzeigefenster und klicke irgendwo in diesem Fenster auf meinen Cursor. Klicken Sie dann auf eine andere Zelle. Die Werte für das URL-Datum ändern sich. Wenn ich auf die URL klicke, erhalte ich die richtigen Daten.

Das alles im IE.

Es scheint, dass beim Kopieren der URL die URL-Site-Informationen mitgebracht werden. Ich bin mir nicht sicher, was passiert, wenn ich die Zelle öffne und nicht ändere, aber es ändert die URL, wenn Sie den Mauszeiger darüber bewegen. Ich bin ein regelmäßiger Magnet für solche Sachen in Excel. Wahrscheinlich, warum ich es nicht vertraue.

0
Dan

Ich habe festgestellt, dass dieses Problem auftritt, wenn die Ziel-URL eine sichere Site ist, für die eine Anmeldung erforderlich ist. Obwohl ich bereits in einem anderen Fenster angemeldet bin, funktioniert es nicht richtig. Wenn ich die URL ausschneide und in einen neuen Tab oder ein neues Fenster einfüge, erkennt Chrome, dass ich mich bereits authentifiziert habe, und öffnet die neue Seite ordnungsgemäß. Wenn ich jedoch nicht auf der Website angemeldet bin, werde ich wie erwartet zur Anmeldeseite umgeleitet.
Wenn ich jedoch unter denselben Bedingungen in Excel auf genau dieselbe URL klicke, wird entweder nur die Anmeldeseite angezeigt, oder auf meiner Remote-Site wird lediglich angegeben, dass es sich um einen nicht unterstützten Browser handelt.
Das Problem kommt eindeutig von Excel. Wenn ich genau diese Tabelle nehme und sie als PDF speichere, funktionieren die in PDF angezeigten Hyperlinks einwandfrei, wenn Sie darauf klicken.
Abgesehen von der Behebung dieser offensichtlich unbeabsichtigten "Funktion" von Excel/Office, die versucht, Links zu überprüfen, wie andere sie veröffentlicht haben, bestand die einzige gefundene Problemumgehung darin, eine lokale Umleitungsseite zu erstellen, die meine eindeutigen Parameter innerhalb der URL und übernehmen konnte öffne ein neues Fenster wie folgt (danke an andere für den JavaScript-Code) Umleiten durch Ändern des Excel-Hyperlinks auf http://mylocaldomain.com/redirect.html?ID=12345 , wobei sich die Weiterleitungsseite auf einem lokalen Server befindet, den Sie steuern, und der Parameter 12345 die URL zum gewünschten Eintrag weiterleitet. Für meine SS mit ca. 10000 Links funktioniert das einwandfrei.

Redirect.html lautet wie folgt.

<!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>
0
JWalter