Excel超链接无法正确重定向(错误?)


33

我有一个Excel超链接问题:假设我A1复制了链接(http://www.godaddy.com/domains/searchresults.aspx?ci=54814),右键单击超链接,然后将该SAME URL复制为链接(如果未自动检测和更改)。

当我单击它时,将重定向到http://www.godaddy.com/domains/search.aspx?ci=53972

如果我将链接直接复制并粘贴到浏览器中,则可以正常工作(即,我没有重定向到其他URL)。

有人知道发生了什么吗?


3
我遇到了需要身份验证的URL相同的问题。如果您从Excel电子表格单击一个URL,该URL要求您登录到基于cookie的会话,则大多数站点会将Microsoft Discovery Agent重定向到登录页面。除非该站点足够聪明,以在用户已经登录的情况下将登录页面请求重定向回原始请求,否则一旦页面加载到实际浏览器中,您最终将被迫手动登录。用户体验是所有链接似乎都已注销。

Answers:


36

您使用的URL需要来自cookie的更多信息,以显示搜索结果而不是搜索页面。将网址粘贴到其他浏览器中(或删除Cookie),您将获得相同的结果。

在Excel中单击URL似乎已在您的默认浏览器中将其打开。但这不是真的。在您的浏览器中打开它之前,Excel首先运行Microsoft Office Protocol Discovery。这使用Windows / Internet Explorer组件确定URL是否有效。(它不会将自己标识为Internet Explorer,而是标识为“用户代理:Microsoft Office存在发现”。)并且如果结果(某种程度上)还可以,那么它将在您的默认浏览器中打开检查的结果

缺少cookie(更确切地说:缺少会话),GoDaddy为Internet Explorer组件提供了一些重定向。并在默认浏览器中打开结果。这就是您看到的URL。

您的默认浏览器很可能不是Internet Explorer?然后将URL直接粘贴到IE中并单击它以获取cookie,然后也可以使链接在Excel中起作用。(仅用于测试;这不是永久性的解决方案。)

使用不依赖Cookie某些隐藏信息的URL会带来更多运气,例如http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com


很好的信息,谢谢。打开,而您必须登录链接时,我看到了同样在Word中。
marcvangend

1
应该将其标记为正确答案。
塞洛辛迪斯'16

1
什么“功能”
CountMurphy

我发现excel(在Windows上)没有遵循重定向到其结论。使用Wikipedia链接(wikipedia.org/wiki/Merck%20Sharp%20%26%20Dohme%20Corp),可以进行三个重定向,但是excel报告为404。该链接在OSX excel上可以正常工作。
技术

10

这是Excel错误。如果将链接粘贴到Outlook电子邮件或写字板中,然后从那里打开链接,它将可以正常工作。

Excel永远不要创建隐藏的会话来验证超链接。有什么意义。它只需要打开它,别无其他。他们在MS Word中使用相同的逻辑。从那里也不行。当Excel尝试在后台验证链接时,将创建未经身份验证的新会话,因此会将其重定向到登录页面或其他内容。此后,Excel不在打开浏览器中的原始URL,而是在打开重定向URL。他们真的知道如何使简单的事情变得复杂。


创建会话的不是Excel。正是GoDaddy网站做到了。将URL从一个浏览器复制到另一个浏览器也不会获得一个搜索结果。在另一台计算机上使用Excel工作簿也将失败。(除此之外:确实,Excel试图变得聪明而搞砸了;有关其他背景信息,请参见其他答案。)
Arjan 2012年

发生这种情况的原因是,Office产品将所有链接视为相同,并且不知道您是否尝试链接到另一个Office文档或网页。它正在尝试解决。
pbarney

8

这是一个已知的Microsoft错误,在以下情况下,超链接会重定向到另一个页面:

  • 您正在使用Microsoft Internet Explorer:
    • 与代理服务器
    • 在使用不允许本地网络上的HTTP请求的防火墙时
  • Internet Explorer不是您的默认浏览器。
  • ForceShellExecute注册表项不存在或没有被设置为1

您可以从此处应用此修复程序:

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


此修复程序还为我解决了一个相关问题。单击PowerPoint中的链接时,有时会收到错误消息“无法下载您请求的信息”。在该链接上应用修复程序可以解决此问题。请注意,我在Windows 10计算机(默认浏览器为Chrome(v 60))上使用PowerPoint 2010。
Paul de Barros

1

恐怕在这里添加太多评论。

初始链接返回302状态代码

根据w3c标准

所请求的资源临时位于其他URI下。由于重定向有时可能会更改,因此客户端应继续将Request-URI用于将来的请求。仅当由Cache-Control或Expires标头字段指示时,此响应才可缓存。

临时URI应该由响应中的Location字段给出。除非请求方法是HEAD,否则响应的实体应该包含简短的超文本注释,并带有指向新URI的超链接。

如果响应GET或HEAD以外的请求而收到302状态码,则用户代理不得自动重定向请求,除非用户可以确认,因为这可能会更改发出请求的条件。

  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.

因此,如@xlm所述,这是GoDaddy执行的临时重定向。

从Excel调用时,似乎并不总是遵循重定向。


1
我会将其添加为@xlm答案的注释,但太大了。我意识到这不是答案。
朱利安·奈特

1

当目标URL是需要登录的安全站点时,我发现此问题出现。即使我已经在其他窗口中登录,也无法正常工作。如果我将网址剪切并粘贴到新标签页或窗口中,则Chrome足够聪明,可以发现我已通过身份验证,并可以正确打开新页面。但是,如果我没有登录该站点,则将按预期重定向到登录页面。
但是,当在相同条件下在Excel中单击完全相同的URL时,我只能得到登录页面,或者我的远程站点只是告诉我它是不受支持的浏览器。
问题显然来自Excel,因为如果我使用那个精确的电子表格,将其另存为PDF,则单击该PDF时显示的超链接可以很好地工作。
除了修复Excel / Office的这种明显非预期的“功能”以尝试验证其他人已发布的链接之外,我发现的唯一解决方法是创建一个本地重定向页面,该页面可以在URL中使用我的唯一参数并打开一个新窗口,通过将excel超链接更改为http://mylocaldomain.com/redirect.html?ID=12345之类的内容来进行重定向(感谢其他人的JavaScript代码) ,其中重定向页位于您控制的本地服务器上使URL重定向到所需的特定条目。对于我的具有约10000个链接的SS来说,它工作得很好。

Redirect.html如下。

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

肯定很烦人。一种解决方法是链接到重定向到超链接的本地文件。例如,类似:

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

我对HTML不太了解,但是能够将参数(即URL)传递到此本地html文件会很好。


0

我可以复制您的问题,但这不是Excel问题。实际上是Godaddy将您重定向到第二个链接。尝试将该链接粘贴到浏览器中,您将看到它重定向到第二个。

注意:在Excel 2007,Firefox 13.0.1上进行了测试


1
嗯..但是当我将链接粘贴到浏览器中时,我停留在第一个链接上..这就是为什么它很奇怪.. godaddy如何能够检测到将链接粘贴到url或从excel文件导航之间的区别?

实际上,它们不是,当您的浏览器尝试访问第一个链接时,它们的服务器会通过将您发送到第二个链接来进行响应。它与Excel无关。我也在Chrome上对此进行了验证。我无法重现您所描述的情况,即您在浏览器中将其输入的位置,并且它不会重定向。你使用的是什么浏览器?

我正在使用Chrome,但是我现在看到了什么。.该请求基于会话..因此,当我从其他浏览器打开时,我看不到链接..从excel访问时,会话以某种方式中断文件..

尝试再次使用Chrome重现这些情况,我敢肯定,您将获得第二个链接。Excel只是使用您的默认浏览器打开链接。另外,如果这可以解决您的问题,请标记为谢谢!

1
抱歉,但是它不能解决问题。.excel也用chrome打开了链接,这就是为什么它很奇怪..当我将相同的链接粘贴到chrome中时-它起作用..但是当我单击超链接时,它却不能.. 。当我以隐身模式在chrome中打开它时,它也不起作用...

0

仅在要包含要在日期戳上处理和检索数据库的站点上,我才遇到相同的问题。我会将网址复制到一个新的单元格中。更改日期。点击新网址,但获取旧网址。

但是,如果我单击新的URL单元格,则转到单元格显示窗口,在该窗口中的任意位置单击我的光标,然后单击url日期值更改的其他单元格,然后单击url获得正确的数据。

所有这一切在IE中。

看来,当您复制URL时,它会带上URL站点信息。不知道当我打开单元格并且不更改它时会发生什么魔术,但是当您将指针放在它上面时,它会更改URL。我对Excel中的这类东西很感兴趣。可能是为什么我不信任它。



0

当我尝试获取一个Excel工作簿链接到我自己的Web服务器时,我能够进行进一步的调查。我注意到,单击Excel中的链接会对服务器产生三个查询。

  1. 获取头(带有临时会话)
  2. GET(带有临时会话)
  3. GET(带有实际会话)

但是,如果链接页面正在重定向用户,那么我看不到第三个GET。而是将第二个GET重定向到新页面,并且该会话保持临时状态。这意味着,如果目标页面需要身份验证,即使该用户实际上已经过身份验证,该用户也将被重定向到登录页面。

这使我想到一个创建登录页面的想法,如果用户通过了身份验证,该登录页面会将用户重定向到目标页面。而且有效。收到第三个GET时,服务器会通知用户已通过身份验证,并重定向到目标页面。对于未经身份验证的用户,登录页面将显示指向目标页面的链接。当用户单击链接时,该用户将被重定向到登录页面。


-1

我们设法重现该问题,并且我们的开发人员调查结果表明,当您将链接粘贴到Microsoft Excel中时,Excel会以字节顺序标记(BOM)开头该链接。在浏览器中加载此链接后,它不会从URL中删除BOM。

加载URL后,浏览器将进行几次测试,以验证连接是否安全(https),并且由于BOM错误导致连接失败。最终会导致继电器状态错误,因为该参数必须通过安全通道发送。

您可以通过复制单元格并将其直接粘贴到firefox中来重现此问题,从而将Excel从图片中删除。这也会失败(有时以稍微不同的方式),但会遇到相同的根本问题。如果您从粘贴的网址中删除“ https”并简单地重新输入,您将注意到该链接现在可以正常工作。

这是一个限制,因为Excel将BOM表存储在URL中,并且浏览器无法解释BOM表。

目前,我们唯一可以想到的解决方法是复制URL链接并将其粘贴到浏览器中并访问页面。

另外,我个人建议您向Microsoft提出支持请求,我相信他们可能会对这个问题有更好的了解,以帮助您解决此问题。


-1

为了在某​​些站点上解决此问题,我只创建了一个HTML文件,该文件重定向到有问题的站点,然后将Excel中的超链接指向该文件,效果很好。

样品:

<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

我最近遇到了这个问题,其中Excel中的超链接功能指向WordPress网站中的重定向301。我将301更新为指向新文档,但是Excel中的链接继续显示旧文档。即使我在Windows 10计算机上运行Excel 2016,也只能通过清除IE中的文档缓存来解决此问题。希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.