
我有一個 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」。)如果結果(以某種方式)正常,則它將打開結果在您的預設瀏覽器中進行該檢查。
缺少cookie(更準確地說:缺少一次會議),GoDaddy 提供了該 Internet Explorer 元件一些重定向。結果將在您的預設瀏覽器中開啟。這就是您看到的網址。
您的預設瀏覽器很可能不是 Internet Explorer?然後將 URL 直接貼到 IE 中並點擊它以取得 cookie,然後也可能使連結在 Excel 中正常運作。 (僅供測試;這不是永久解決方案。)
使用不依賴 cookie 中某些隱藏資訊的 URL,您會更幸運,例如http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com
答案2
這是 Excel 的錯誤。如果您將連結貼到 Outlook 電子郵件或寫字板中並從那裡打開該鏈接,它將正常工作。
Excel 絕不應該建立隱藏會話來驗證超連結。這有什麼意義呢?只需要打開它即可,無需其他任何操作。它們在 MS Word 中使用相同的邏輯。從那裡它也不起作用。當 Excel 嘗試在背景驗證連結時,會建立未經驗證的新會話,因此它會被重新導向到登入頁面或其他頁面。之後,Excel 將開啟重定向 URL,而不是在瀏覽器中開啟原始 URL。他們真的知道如何讓簡單的事情變得複雜。
答案3
這是一個已知的 Microsoft 錯誤,如果出現以下情況,超連結將重新導向到另一個頁面:
- 您正在使用 Microsoft Internet Explorer:
- 使用代理伺服器
- 使用不允許本機網路上的 HTTP 請求的防火牆時
- Internet Explorer 不是您的預設瀏覽器。
- 註冊表項
ForceShellExecute
不存在或未設定為 1
您可以從此處應用修復程式:
答案4
恐怕這裡要加的內容太多了。
初始連結返回 302 狀態碼
來自W3C 標準:
請求的資源暫時駐留在不同的 URI 下。由於重定向有時可能會改變,因此客戶端應該繼續使用 Request-URI 來處理未來的請求。僅當由 Cache-Control 或 Expires 標頭欄位指示時,此回應才可快取。
臨時 URI 應由回應中的位置欄位給出。除非請求方法是 HEAD,否則回應實體應該包含一個簡短的超文本註釋,其中包含指向新 URI 的超連結。
如果收到 302 狀態代碼來回應 GET 或 HEAD 之外的請求,則使用者代理程式不得自動重定向請求,除非使用者可以確認,因為這可能會變更發出請求的條件。
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 調用時,重定向並不總是受到尊重。