Microsoft Office Word 無法開啟 Google Drive 超連結
昨天同事遇到一個很奇怪的問題,他將 Google Drive 資料夾共用連結插入 Word 中,但是 ctrl + click 超連結之後,卻沒辦法連到正確的頁面。
先說在前面,如果你不是資訊 / 技術人員或是沒有自己的主機,看到這邊就可以了,解決的方法就是直接複製上面的文字,貼到瀏覽器就可以了,下面內容對你的幫助不大,頂多知道為什麼會發生這個問題,不過可以把這篇轉給資訊 / 技術人員,他們可以知道問題並且協助解決。
問題
找了很久的設定,到底是為什麼,一開始發現下圖
猜測是不是 Word 雞婆,把出來的 link 全部轉成小寫造成這個狀況,很久以前也有遇到過這個問題,當時使用縮址服務,並且產生出來的連結全部都是小寫的話,可以正常運作。
就這樣運作一段時間之後,同事告知之前的問題又出現了,即使現在全部縮址換成小寫,都還是不行( 這裡不得不提 TinyURL.com 真是不錯,還可以自訂短網址 ),這 … 通通都會被導去要使用者更新瀏覽器的頁面。
這 … 這該怎麼辦才好呢?Google 了一堆奇奇怪怪的答案,微軟官網有教你透過 regedit 修改機碼的,小蛙修改了也沒用,後來想想,怎麼可能要請收到檔案的對方修改機碼 … 這太誇張了。
轉 PDF 吧!測試了一下,轉完 PDF 一切正常喔,沒有任何問題,但是同事表示,這個 case 沒辦法轉成 PDF,一定要用 Word 檔 … 天啊 ~~~ 只能繼續追查資料,先來確定一下 Word 出去的參數到底有沒有被修改,噹噹 ~ Word 出去的參數整份好好的沒有被修改,不是大小寫的問題,那還會是什麼問題呢?
發現原因
在看 log 的時候赫然發現一件超 … 讓人難以置信的事情,直接上圖
這真的是絕了 ~ 在 Word 點了超連結之後的動作是會以 HEAD 送出請求,而且裡面的 User-Agent 竟然是填入「Microsoft Office Word 2013」,看到這邊終於能理解為什麼 Google Drive 頁面會顯示「更新瀏覽器以使用 Google 雲端硬碟」,因為 Google 收到你一個客戶端寫著 Word 2013,是不是來找碴的啊!看我把你封鎖掉 ~ (設計對白)
解決方法
好了,終於真相大白了,資訊人員看到這邊應該大概猜到要怎麼解了吧!小蛙使用了一個最笨但是最方便的方法,把 Word 裡有用到 Google Drive 的超連結都導向到自己的主機,例如:https://xxx.xxx/redirectWord?q=xxxxx。因為上面確定 Word 出來的參數並不會去做更動,也就是 redirectWord 這支裡面可以接到 q,再把他組成要連結的網址送出去。
這邊還有一個要注意的地方,小蛙使用 JSP 的 response.sendRedirect 做轉址,但是失敗了,嘗試修改 HEADER 或其他方式也都失敗了 … 時間緊迫沒再做其他嘗試,後來改用最不漂亮的 Javascript 轉址 >< 但至少解掉這個問題了!
如果想要精緻一點,也可以在 redirectWord 頁面中放置一個「確定前往」的按鈕,讓使用者點了之後帶過去,就看自己需求了。