.png)
Excel のハイパーリンクに問題があります。たとえば、 をクリックしてA1
、その中のリンク ( http://www.godaddy.com/domains/searchresults.aspx?ci=54814
) をコピーし、ハイパーリンクを右クリックして、その同じ URL をリンクとしてコピーします (自動的に検出されて変更されない場合は)。
それをクリックすると、 にリダイレクトされますhttp://www.godaddy.com/domains/search.aspx?ci=53972
。
リンクをコピーしてブラウザに直接貼り付けると、正常に動作します (つまり、別の URL にリダイレクトされません)。
何が起こっているのか誰か知っていますか?
答え1
使用しているURLには、検索結果を表示するためにCookieからさらに情報が必要です結果検索ページではなく、別のブラウザに URL を貼り付ける (または Cookie を削除する) と、同じ結果が得られます。
ExcelでURLをクリックすると、デフォルトのブラウザで開くように見えます。しかし、実際にはそうではありません。ブラウザで開く前に、ExcelはまずMicrosoft Office プロトコル検出これは、Windows/Internet Explorer コンポーネントを使用して、URL が機能するかどうかを判断します。(Internet Explorer としてではなく、「ユーザー エージェント: Microsoft Office Existence Discovery」として識別されます。) 結果が (何らかの形で) 正常であれば、結果デフォルトのブラウザで確認してください。
クッキーが足りない(正確にはセッション)、GoDaddyはInternet Explorerコンポーネントを提供していますリダイレクトその結果がデフォルトのブラウザで開かれます。それが表示されている URL です。
おそらく、デフォルトのブラウザは Internet Explorer ではありませんか? その場合、URL を IE に直接貼り付けてクリックし、Cookie を取得すると、Excel からのリンクも機能する可能性があります。(テスト目的のみで、永続的な解決策ではありません。)
クッキーの隠された情報に依存しないURLを使用すると、より成功する可能性が高くなります。http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com
答え2
これは Excel の不具合です。Outlook のメールまたはワードパッドにリンクを貼り付けて、そこからリンクを開くと、正常に動作します。
Excel はハイパーリンクを確認するために隠しセッションを作成するべきではありません。その意味は何でしょうか。開くだけで、他には何もありません。MS Word でも同じロジックが使用されています。そこからも機能しません。Excel がバックグラウンドでリンクを確認しようとすると、認証されていない新しいセッションが作成され、ログイン ページなどにリダイレクトされます。その後、ブラウザーで元の URL を開く代わりに、Excel はリダイレクト URL を開きます。Excel は単純なことを複雑にする方法を本当に知っています。
答え3
これは、次の場合にハイパーリンクが別のページにリダイレクトされるという、Microsoft の既知のバグです。
- Microsoft Internet Explorer を使用しています:
- プロキシサーバー
- ローカルネットワーク上でHTTPリクエストを許可しないファイアウォールを使用している場合
- Internet Explorer はデフォルトのブラウザではありません。
- レジストリ
ForceShellExecute
キーが存在しないか、1 に設定されていません
ここから修正を適用できます:
答え4
残念ながら、コメントとして追加するには多すぎると思います。
最初のリンクは302ステータスコードを返します
からW3C 標準:
要求されたリソースは、一時的に別の URI に存在します。リダイレクトは時々変更される可能性があるため、クライアントは今後の要求でも引き続き Request-URI を使用する必要があります。この応答は、Cache-Control または Expires ヘッダー フィールドで示されている場合にのみキャッシュ可能です。
一時的な URI は、応答の Location フィールドで指定する必要があります。要求メソッドが HEAD でない限り、応答のエンティティには、新しい URI へのハイパーリンクを含む短いハイパーテキスト ノートが含まれている必要があります。
GET または HEAD 以外のリクエストへの応答として 302 ステータス コードが受信された場合、リクエストが発行された条件が変わる可能性があるため、ユーザー エージェントは、ユーザーが確認しない限り、リクエストを自動的にリダイレクトしてはなりません (MUST NOT)。
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 から呼び出された場合、リダイレクトが常に尊重されるわけではないようです。