Hiperlink do Excel não está redirecionando corretamente (bug?)

31

Eu tenho um problema de hiperlink do Excel: Eu clico, digamos A1, copie o link nele ( http://www.godaddy.com/domains/searchresults.aspx?ci=54814), clique com o botão direito do mouse no hiperlink e copie esse mesmo URL como o link (se ele não for detectado e alterado automaticamente).

Quando clico nele, sou redirecionado para http://www.godaddy.com/domains/search.aspx?ci=53972.

Se eu copiar e colar o link diretamente no navegador, ele funciona bem (ou seja, não sou redirecionado para um URL diferente).

Alguém sabe o que está acontecendo?

Andrej
fonte
2
Eu corri para o mesmo problema com uma URL que requer autenticação. Se você clicar em uma planilha do Excel em uma URL que exija que você faça login em uma sessão baseada em cookie, a maioria dos sites redirecionará o Microsoft Discovery Agent para uma página de login. A menos que o site seja inteligente o suficiente para redirecionar a solicitação da página de login de volta para a solicitação original, caso o usuário já esteja conectado, você será forçado a efetuar login manualmente assim que a página for carregada no seu navegador real. A experiência do usuário é que todos os links parecem estar desconectados.
Joe

Respostas:

30

O URL que você está usando precisa de mais algumas informações de um cookie para exibir os resultados da pesquisa, e não a página de pesquisa. Cole o URL em um navegador diferente (ou remova seus cookies) e você obterá os mesmos resultados.

Clicar em um URL no Excel parece abri-lo no navegador padrão. Mas isso não é verdade. Antes de abri-lo no seu navegador, o Excel executa primeiro o Microsoft Office Protocol Discovery . Isso usa um componente do Windows / Internet Explorer para determinar se o URL funciona. (Ele não se identifica como o Internet Explorer, mas como "Agente do Usuário: Descoberta de Existência do Microsoft Office".) E se os resultados (de alguma forma) estiverem corretos, ele abrirá o resultado dessa verificação no navegador padrão.

Na falta dos cookies (mais precisamente: faltando uma sessão ), o GoDaddy dá a esse componente do Internet Explorer algum redirecionamento . E o resultado disso é aberto no seu navegador padrão. Esse é o URL que você está vendo.

O mais provável é que o seu navegador padrão não seja o Internet Explorer? Em seguida, colando o URL diretamente no IE e clicando nele, para obter os cookies, ele também pode fazer o link funcionar no Excel. (Apenas para testes; não é uma solução permanente.)

Você terá mais sorte usando uma URL que não dependa de algumas informações ocultas de um cookie, como http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com

Arjan
fonte
Ótima informação, obrigada. Eu estou vendo o mesmo no Word ao abrir um link para o qual você deve estar logado.
marcvangend
1
Isso deve ser marcado como a resposta correta.
Selosindis
o que é um "recurso"
CountMurphy
10

Esta é a falha do Excel. Se você colar o link no email do Outlook ou no WordPad e abrir o link a partir dele, ele funcionará corretamente.

O Excel nunca deve criar uma sessão oculta para verificar o hiperlink. qual é o sentido disso. Só precisa abri-lo, nada mais. Eles usam a mesma lógica no MS Word. Não funciona de lá também. Quando o Excel tenta verificar o link em segundo plano, é criada uma nova sessão que não é autenticada para ser redirecionada para a página de login ou algo assim. Depois disso, em vez de abrir o URL original no navegador, o Excel está abrindo o URL de redirecionamento. Eles realmente sabem como complicar a coisa simples.

fritar
fonte
Não é o Excel que está criando sessões. É o site da GoDaddy que faz isso. Copiar o URL de um navegador para outro também NÃO obterá um dos resultados da pesquisa. Usando a pasta de trabalho do Excel em outro computador também falhará. (Além disso: na verdade, o Excel está bagunçando, tentando ser inteligente; veja as outras respostas para mais informações de fundo.)
Arjan
7

Este é um bug conhecido da Microsoft onde os hiperlinks são redirecionados para outra página se:

  • Você está usando o Microsoft Internet Explorer:
    • com um servidor proxy
    • ao usar um firewall que não permite solicitações HTTP em sua rede local
  • O Internet Explorer não é seu navegador padrão.
  • A ForceShellExecutechave do registro não está presente ou não está definida como 1

Você pode aplicar a correção aqui:

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

Kaushik Baruah
fonte
Essa correção também resolveu um problema relacionado para mim. Ao clicar em links no PowerPoint, às vezes recebo a mensagem de erro "não é possível baixar as informações solicitadas". A aplicação da correção nesse link resolveu o problema. Observe que estou usando o PowerPoint 2010 em uma máquina Windows 10 com o Chrome (v 60) como meu navegador padrão.
Paul de Barros
1

Demais aqui para adicionar como comentário estou com medo.

O link inicial retorna um código de status 302

A partir dos padrões da w3c :

O recurso solicitado reside temporariamente em um URI diferente. Como o redirecionamento pode ser alterado ocasionalmente, o cliente deve continuar a usar o URI de solicitação para solicitações futuras. Essa resposta é apenas armazenável em cache se indicada por um campo de cabeçalho Cache-Control ou Expires.

O URI temporário DEVE ser dado pelo campo Localização na resposta. A menos que o método de solicitação seja HEAD, a entidade da resposta DEVE conter uma nota de hipertexto curto com um hiperlink para o (s) novo (s) URI (s).

Se o código de status 302 for recebido em resposta a uma solicitação diferente de GET ou HEAD, o agente do usuário NÃO DEVE redirecionar automaticamente a solicitação, a menos que ela possa ser confirmada pelo usuário, pois isso pode alterar as condições sob as quais a solicitação foi emitida.

  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.

Então, como @xlm declarou, este é o GoDaddy fazendo um redirecionamento temporário.

Parece que, quando chamado do Excel, o redirecionamento nem sempre é honrado.

Julian Knight
fonte
1
Eu adicionei isso como um comentário à resposta do @xlm, mas é muito grande. Eu percebo que isso não é uma resposta.
Julian Knight
1

Eu encontrei este problema surge quando o URL de destino é um site seguro que exigia um login. Mesmo que eu esteja logado em uma janela diferente, ele não funcionará corretamente. Se eu cortar e colar o URL em uma nova guia ou janela, o Chrome é inteligente o suficiente para descobrir que eu já autentiquei e abra a nova página corretamente. No entanto, se eu não estiver logado no site, serei redirecionado para a página de login, como esperado.
Mas, ao clicar exatamente no mesmo URL no Excel, com as mesmas condições, eu só obtenho a página de login ou meu site remoto apenas me diz que é um navegador não suportado.
O problema está claramente vindo do Excel, porque se eu pegar essa planilha exata, salvá-la como um PDF, os hiperlinks exibidos no PDF funcionam perfeitamente quando clicados.
Além de consertar esse “recurso” obviamente não intencional do Excel / Office tentando verificar links como outros postaram, a única solução encontrada foi criar uma página de redirecionamento local que poderia ter meus parâmetros exclusivos dentro da URL e abrir uma nova janela como segue (graças a outros para o código JavaScript) Redirecionar, alterando o hiperlink do Excel para algo como http://mylocaldomain.com/redirect.html?ID=12345 , onde a página de redirecionamento está em um servidor local que você controla e o parâmetro 12345 faz o URL redirecionar para a entrada específica necessária. Para minha SS com cerca de 10.000 links, isso funciona muito bem.

Redirect.html é o seguinte.

<!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>
JWalter
fonte
1

É definitivamente irritante. Uma solução alternativa é criar um link para um arquivo local que redireciona para o hiperlink. Por exemplo, algo como:

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

Eu não sei muito sobre HTML, mas seria bom poder passar um argumento (ou seja, a URL) para este arquivo html local.

q335r49
fonte
0

Eu posso replicar seu problema, mas não é um problema do Excel. Na verdade, é o GoDaddy que está redirecionando você para o segundo link. Tente colar esse link no seu navegador e você verá o redirecionamento para o segundo.

Notas: Testado no Excel 2007, Firefox 13.0.1


fonte
1
hm .. mas quando eu colo o link no navegador eu fico no primeiro link .. é por isso que é estranho .. como é godaddy capaz de detectar a diferença entre colar o link na url ou navegar de um arquivo excel?
Eles não são, basicamente, quando o seu navegador tenta visitar o primeiro link, o servidor responde enviando-o para o segundo. Não tem nada a ver com o Excel. Eu verifiquei isso no Chrome também. Não consigo reproduzir as circunstâncias que você descreve quando você as insere no seu navegador e não redireciona. Qual navegador você está usando?
Eu estou usando o Chrome, mas eu vejo o que está acontecendo agora .. o pedido é baseado em sessão .. então quando eu abro de outro navegador, não consigo ver o link .. e de alguma forma a sessão é quebrada ao acessar a partir do excel arquivo ..
Tente reproduzir novamente essas circunstâncias com o Chrome, tenho certeza de que você terminará no segundo link. O Excel está apenas abrindo o link com seu navegador padrão. Além disso, se isso resolve o seu Q, por favor, marque obrigado!
1
desculpe, mas ele não resolve o problema .. excel abre o link com o cromo também, é por isso que é estranho .. quando eu colar o mesmo link no chrome - ele funciona .. mas quando eu clico em hiperlink não faz .. Quando eu abri-lo em cromo em incógnito, ele também não funciona ...
0

Eu tive o mesmo problema apenas o site que eu ia incluído processamento e recuperação de banco de dados em um carimbo de data. Eu copiaria o URL para uma nova célula. mude a data. clique no novo URL, MAS obtenha o URL antigo.

No entanto, se eu clicou na nova célula url, vá até a janela de exibição da célula, clique em meu cursor em qualquer lugar nessa janela e clique em uma célula diferente, altere os valores de data da URL e clique na URL para obter os dados corretos.

Tudo isso no IE.

Parece que quando você copia o URL, ele traz as informações do site de URL com ele. Não tenho certeza de qual mágica acontece quando eu abro a célula e não a altero, mas ela muda o URL quando você passa o ponteiro sobre ele. Eu sou um ímã regular para esse tipo de coisa no Excel. Provavelmente porque eu não confio nisto.

Dan
fonte
0

Eu fui capaz de investigar isso ainda mais, pois eu estava tentando fazer com que uma pasta de trabalho do Excel fosse vinculada ao meu próprio servidor web. Percebi que clicar em um link no Excel produzia três consultas ao servidor.

  1. GET HEAD (com sessão temporária)
  2. GET (com sessão temporária)
  3. GET (com sessão real)

Mas se a página vinculada estava redirecionando o usuário, não vi o terceiro GET. Em vez disso, o segundo GET foi redirecionado para uma nova página e a sessão permaneceu temporária. O que significa que, se a página de destino exigir autenticação, o usuário será redirecionado para uma página de login, mesmo que ele já esteja autenticado.

Isso me levou a uma ideia de criar uma landing page que redireciona o usuário para a página de destino, caso o usuário seja autenticado. E isso funciona. Quando o terceiro GET é recebido, o servidor percebe que o usuário está autenticado e redireciona para a página de destino. Para usuários não autenticados, a página de destino mostra um link para a página de destino. E quando o usuário clicar no link, o usuário será redirecionado para a página de login.

Mika
fonte
-1

Conseguimos reproduzir o problema e nossas descobertas de desenvolvedor indicam quando você cola um link no Microsoft Excel, o Excel prefacia o link com uma marca de ordem de byte (BOM). Quando esse link é carregado no navegador, ele não remove o BOM do URL.

Ao carregar o URL, o navegador faz vários testes para verificar se a conexão está segura (https) e isso está falhando devido à lista de materiais errante. Isso acaba causando o erro de estado do relé, já que esse parâmetro deve ser enviado por um canal seguro.

Você pode reproduzir esse problema copiando a célula e colando-a diretamente no firefox, tirando o Excel da imagem. Isso também falha (às vezes de maneira um pouco diferente), mas sofre do mesmo problema de raiz. Se você remover o "https" do URL colado e simplesmente redigitá-lo, você notará que o link agora funciona corretamente.

Essa é uma limitação no fato de o Excel armazenar a BOM na URL e a maneira como o navegador não pode interpretar a BOM.

No momento, a única solução que podemos pensar é copiar o link da URL e colá-lo no navegador e acessar a página.

Além disso, eu pessoalmente sugiro que você crie um ticket de suporte com a Microsoft e acredito que eles possam ter um melhor entendimento sobre esse assunto para ajudá-lo nessa questão.

Adolfo Guzman Jr.
fonte
-1

Para resolver esse problema em alguns sites eu apenas criar um arquivo HTML que redireciona para o site em questão e, em seguida, aponte o hiperlink no Excel para este arquivo e funciona muito bem ..

amostra:

<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>
Jason
fonte
-1

Recentemente, tive esse problema em que uma função de hiperlink no Excel apontava para um redirecionamento 301 em um site WordPress. Eu atualizei o 301 para apontar para um novo documento, mas o link no Excel continuou a trazer o documento antigo. Eu só fui capaz de resolver isso limpando o cache de documentos no IE, mesmo que eu esteja executando o Excel 2016 em uma máquina com Windows 10. Espero que isto ajude.

Marca
fonte