Hyperlink Excel tidak mengarahkan ulang dengan benar (bug?)

27

Saya memiliki masalah hyperlink Excel: Saya klik, katakanlah A1, salin tautan di dalamnya ( http://www.godaddy.com/domains/searchresults.aspx?ci=54814 ), klik kanan pada hyperlink dan salin URL SAMA itu sebagai tautan (jika tidak terdeteksi dan diubah secara otomatis).

Ketika saya mengkliknya, saya diarahkan ke http://www.godaddy.com/domains/search.aspx?ci=53972.

Jika saya menyalin dan menempelkan tautan langsung ke browser, itu berfungsi dengan baik (mis., Saya tidak dialihkan ke URL yang berbeda).

Adakah yang tahu apa yang terjadi?

Andrej
sumber
2
Saya mengalami masalah yang sama dengan URL yang membutuhkan otentikasi. Jika Anda mengklik dari lembar bentang Excel ke URL yang mengharuskan Anda masuk ke sesi berbasis cookie, sebagian besar situs akan mengarahkan Microsoft Discovery Agent ke halaman login. Kecuali jika situs tersebut cukup pintar untuk mengarahkan kembali permintaan halaman login kembali ke permintaan asli jika pengguna sudah masuk, Anda akhirnya dipaksa untuk masuk secara manual setelah halaman dimuat di browser asli Anda. Pengalaman pengguna adalah bahwa semua tautan tampaknya keluar.
Joe

Jawaban:

29

URL yang Anda gunakan memerlukan lebih banyak informasi dari cookie untuk menampilkan pencarian hasil daripada halaman pencarian. Rekatkan URL ke browser yang berbeda (atau hapus cookie Anda) dan Anda akan mendapatkan hasil yang sama.

Mengeklik URL di Excel tampaknya membukanya di peramban default Anda. Tapi itu tidak sepenuhnya benar. Sebelum membukanya di browser Anda, Excel terlebih dahulu berjalan Penemuan Protokol Microsoft Office . Ini menggunakan komponen Windows / Internet Explorer untuk menentukan apakah URL berfungsi. (Itu tidak mengidentifikasi dirinya sebagai Internet Explorer, tetapi sebagai "User Agent: Microsoft Office Existence Discovery".) Dan jika hasilnya (entah bagaimana) oke maka akan terbuka hasil dari cek di browser default Anda.

Kurang cookie (lebih tepatnya: kurang satu sesi ), GoDaddy memberikan komponen Internet Explorer itu beberapa redirect . Dan hasilnya dibuka di browser default Anda. Itu URL yang Anda lihat.

Kemungkinan besar browser default Anda bukan Internet Explorer? Kemudian menempelkan URL ke IE secara langsung dan mengkliknya, untuk mendapatkan cookie, mungkin kemudian juga membuat tautan berfungsi dari Excel. (Hanya untuk pengujian; ini bukan solusi permanen.)

Anda akan lebih beruntung menggunakan URL yang tidak bergantung pada beberapa informasi tersembunyi dari cookie, seperti http://www.godaddy.com/domains/search.aspx?domainToCheck=superuser.com

Arjan
sumber
Informasi bagus, terima kasih. Saya melihat hal yang sama di Word ketika membuka tautan yang harus Anda masuki.
marcvangend
1
Ini harus ditandai sebagai jawaban yang benar.
Selosindis
apa "fitur"
CountMurphy
10

Ini adalah kesalahan Excel. Jika Anda menempelkan tautan dalam email Outlook atau WordPad dan Anda membuka tautan dari sana, tautan itu akan berfungsi dengan benar.

Excel seharusnya tidak pernah membuat sesi tersembunyi untuk memverifikasi hyperlink. apa gunanya itu Hanya perlu membukanya, tidak ada yang lain. Mereka menggunakan logika yang sama di MS Word. Tidak bekerja dari sana juga. Ketika Excel mencoba memverifikasi tautan di latar belakang, sesi baru dibuat yang tidak diautentikasi sehingga dialihkan ke halaman masuk atau sesuatu. Setelah itu alih-alih membuka URL asli di browser, Excel membuka url pengalihan. Mereka benar-benar tahu cara membuat hal yang sederhana menjadi rumit.

fry
sumber
Bukan Excel yang membuat sesi. Situs web GoDaddy yang melakukan itu. Menyalin URL dari satu browser ke browser lain juga TIDAK akan mendapatkan satu hasil pencarian. Menggunakan buku kerja Excel di komputer lain juga akan gagal. (Terlepas dari itu: memang Excel mengacau dengan mencoba menjadi pintar; lihat jawaban lain untuk info latar belakang lebih lanjut.)
Arjan
6

Ini adalah bug Microsoft yang dikenal di mana hyperlink dialihkan ke halaman lain jika:

  • Anda menggunakan Microsoft Internet Explorer:
    • dengan server proxy
    • saat menggunakan firewall yang tidak memungkinkan permintaan HTTP di jaringan lokal Anda
  • Internet Explorer bukan browser default Anda.
  • Itu ForceShellExecute kunci registri tidak ada atau tidak diatur ke 1

Anda dapat menerapkan perbaikan dari sini:

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

Kaushik Baruah
sumber
Perbaikan ini juga memecahkan masalah terkait bagi saya. Saat mengklik tautan di PowerPoint, saya terkadang mendapatkan pesan kesalahan "tidak dapat mengunduh informasi yang Anda minta". Menerapkan perbaikan pada tautan itu menyelesaikan masalah. Perhatikan bahwa saya menggunakan PowerPoint 2010 pada mesin Windows 10 dengan Chrome (v 60) sebagai browser default saya.
Paul de Barros
1

Terlalu banyak di sini untuk ditambahkan sebagai komentar.

Tautan awal mengembalikan kode status 302

Dari standar w3c :

Sumber daya yang diminta tinggal sementara di bawah URI yang berbeda.   Karena pengalihan mungkin berubah pada kesempatan, klien HARUS   terus menggunakan Request-URI untuk permintaan selanjutnya. Tanggapan ini adalah   hanya dapat di-cache jika ditandai dengan header Kontrol-Cache atau Kedaluwarsa   bidang.

URI sementara HARUS diberikan oleh bidang Lokasi di   tanggapan. Kecuali jika metode permintaan adalah KEPALA, entitas dari   respons HARUS berisi catatan hiperteks pendek dengan hyperlink ke   URI baru

Jika kode status 302 diterima sebagai respons terhadap permintaan selain   DAPATKAN atau KEPALA, agen pengguna TIDAK HARUS mengarahkan ulang   meminta kecuali dapat dikonfirmasi oleh pengguna, karena ini mungkin   mengubah kondisi di mana permintaan itu dikeluarkan.

  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.

Jadi seperti yang dinyatakan @xlm, ini adalah GoDaddy melakukan pengalihan sementara.

Tampaknya, ketika dipanggil dari Excel, pengalihan tidak selalu dihormati.

Julian Knight
sumber
1
Saya telah menambahkan ini sebagai komentar untuk jawaban @ xlm tetapi terlalu besar. Saya menyadari bahwa ini bukan jawaban.
Julian Knight
1

Benar-benar menjengkelkan. Salah satu solusinya adalah membuat tautan ke file lokal yang dialihkan ke hyperlink. Misalnya, sesuatu seperti:

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

Saya tidak tahu banyak tentang HTML, tapi alangkah baiknya bisa menyampaikan argumen (yaitu, URL) ke file html lokal ini.

q335r49
sumber
0

Saya dapat mereplikasi masalah Anda namun ini bukan masalah Excel. Sebenarnya Godaddy yang mengarahkan Anda ke tautan kedua. Coba tempel tautan itu ke browser Anda dan Anda akan melihatnya mengarahkan ke yang kedua.

Catatan: Diuji pada Excel 2007, Firefox 13.0.1


sumber
1
hm .. tapi ketika saya tempel tautan ke browser saya tetap di tautan pertama .. itu sebabnya aneh .. bagaimana godaddy bisa mendeteksi perbedaan antara menempelkan tautan di url atau menavigasi dari file excel?
Mereka tidak, pada dasarnya ketika browser Anda mencoba untuk mengunjungi tautan pertama, server mereka merespons dengan mengirimkan Anda ke tautan kedua. Itu tidak ada hubungannya dengan Excel. Saya sudah memverifikasi ini di Chrome juga. Saya tidak dapat mereproduksi keadaan yang Anda jelaskan di mana Anda memasukkannya di browser Anda dan itu tidak mengarahkan ulang. Browser apa yang Anda gunakan?
Saya menggunakan Chrome, tetapi saya melihat apa yang terjadi sekarang .. permintaannya berdasarkan sesi .. jadi ketika saya membuka dari browser lain, saya tidak dapat melihat tautan .. dan entah bagaimana sesi ini rusak ketika mengakses dari excel mengajukan..
Coba ulangi keadaan itu dengan Chrome, saya yakin Anda akan berakhir di tautan kedua. Excel hanya membuka tautan dengan browser default Anda. Juga jika ini menyelesaikan Q Anda, silakan tandai terima kasih!
1
maaf tapi itu tidak menyelesaikan masalah .. excel membuka tautan dengan chrome juga, itu sebabnya aneh .. ketika saya menempelkan tautan yang sama di chrome - itu berfungsi .. tetapi ketika saya mengklik hyperlink tidak .. ketika saya membukanya di chrome dalam penyamaran, itu juga tidak berfungsi ...
0

Saya memiliki masalah yang sama hanya situs saya akan memasukkan pemrosesan dan pengambilan basis data pada cap tanggal. Saya akan menyalin url ke sel baru. ubah tanggal. klik pada url baru, TAPI dapatkan url lama.

Namun, jika saya mengeklik sel url baru, naik ke jendela tampilan sel klik kursor saya di mana saja di jendela itu lalu klik pada sel yang berbeda nilai tanggal url berubah dan mengklik url memberi saya data yang benar.

Semua ini di IE.

Tampaknya ketika Anda menyalin url itu membawa info situs url dengannya. Tidak yakin keajaiban apa yang terjadi ketika saya membuka sel dan tidak mengubahnya, tetapi itu mengubah url ketika Anda meletakkan pointer di atasnya. Saya adalah magnet biasa untuk hal-hal semacam ini di Excel. Mungkin mengapa saya tidak mempercayainya.

Dan
sumber
0

Saya menemukan masalah ini muncul ketika URL target adalah situs aman yang memerlukan login. Meskipun saya sudah masuk di jendela yang berbeda, itu tidak akan berfungsi dengan baik. Jika saya memotong dan menempel URL di tab atau jendela baru, Chrome cukup pintar untuk mengetahui bahwa saya telah mengautentikasi dan membuka halaman baru dengan benar. Namun, Jika saya tidak masuk ke situs, saya akan diarahkan ke halaman login, seperti yang diharapkan.
Tetapi ketika mengklik URL yang sama persis di Excel, dengan kondisi yang sama, saya mendapatkan halaman login saja, atau situs jarak jauh saya hanya memberi tahu saya bahwa itu adalah browser yang tidak didukung.
Masalahnya jelas berasal dari Excel, karena jika saya mengambil spreadsheet yang tepat itu, simpan sebagai PDF, hyperlink yang ditampilkan dalam PDF berfungsi dengan baik ketika diklik.
Selain memperbaiki "fitur" Excel / Office yang jelas tidak disengaja ini mencoba memverifikasi tautan yang diposkan orang lain, satu-satunya solusi yang saya temukan adalah membuat halaman pengalihan lokal yang dapat mengambil parameter unik saya di dalam URL dan membuka jendela baru sebagai mengikuti (terima kasih kepada orang lain untuk kode JavaScript) Arahkan ulang dengan mengubah hyperlink excel ke sesuatu seperti http://mylocaldomain.com/redirect.html?ID=12345 , di mana halaman pengalihan berada di server lokal yang Anda kontrol dan parameter 12345 membuat URL mengarahkan ke entri tertentu yang diperlukan. Untuk SS saya dengan sekitar 10.000 tautan ini berfungsi dengan baik.

Redirect.html adalah sebagai berikut.

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

Saya dapat menyelidiki ini lebih lanjut karena saya mencoba untuk mendapatkan buku kerja Excel untuk ditautkan ke server web saya sendiri. Saya perhatikan bahwa mengklik tautan di Excel menghasilkan tiga permintaan ke server.

  1. DAPATKAN KEPALA (dengan sesi sementara)
  2. DAPATKAN (dengan sesi sementara)
  3. DAPATKAN (dengan sesi nyata)

Tetapi jika halaman yang tertaut mengarahkan pengguna, saya tidak melihat GET ketiga. Sebaliknya GET kedua dialihkan ke halaman baru dan sesi tetap sementara. Yang berarti bahwa jika halaman target memerlukan otentikasi, pengguna akan diarahkan ke halaman login bahkan jika dia sebenarnya sudah diautentikasi.

Ini menuntun saya pada ide untuk membuat halaman arahan yang mengalihkan pengguna ke halaman target jika pengguna diautentikasi. Dan itu berhasil. Ketika GET ketiga diterima, server memperhatikan bahwa pengguna diautentikasi dan diarahkan ke halaman target. Untuk pengguna yang tidak diautentikasi, halaman pendaratan menunjukkan tautan ke halaman target. Dan ketika pengguna mengklik tautan, pengguna akan diarahkan untuk masuk halaman.

Mika
sumber
-1

Kami berhasil mereproduksi masalah dan temuan pengembang kami menunjukkan ketika Anda menempelkan tautan ke Microsoft Excel, Excel memilih tautan dengan tanda urutan byte (BOM). Ketika tautan ini dimuat di browser, itu tidak menghapus BOM dari URL.

Setelah memuat URL, browser melakukan beberapa tes memverifikasi bahwa koneksi aman (https) dan ini gagal karena BOM yang salah. Ini pada akhirnya menyebabkan kesalahan status relai, karena parameter itu harus dikirim melalui saluran aman.

Anda bisa mereproduksi masalah ini dengan menyalin sel dan menempelkannya langsung ke firefox, sehingga mengeluarkan Excel dari gambar. Ini juga gagal (kadang-kadang dengan cara yang sedikit berbeda) tetapi menderita masalah root yang sama. Jika Anda menghapus "https" dari URL yang ditempelkan dan cukup mengetik ulang, Anda akan melihat bahwa tautan sekarang berfungsi dengan benar.

Ini adalah batasan dalam fakta bahwa Excel menyimpan BOM di URL, dan cara di mana browser tidak dapat menafsirkan BOM.

Saat ini satu-satunya solusi yang dapat kami pikirkan adalah menyalin tautan URL dan menempelkannya ke browser dan mengakses halaman.

Juga, saya pribadi menyarankan Anda untuk menaikkan tiket dukungan dengan Microsoft dan saya percaya mereka mungkin memiliki pemahaman yang lebih baik tentang masalah ini untuk membantu Anda dalam masalah ini.

Adolfo Guzman Jr.
sumber
-1

Untuk mengatasi masalah ini di beberapa situs saya hanya membuat file HTML yang dialihkan ke situs yang dimaksud, dan kemudian arahkan hyperlink di Excel ke file ini dan itu berfungsi dengan baik ..

mencicipi:

<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
sumber
-1

Saya baru-baru ini memiliki masalah ini di mana fungsi hyperlink di Excel menunjuk ke redirect 301 di situs WordPress. Saya memperbarui 301 untuk menunjuk ke dokumen baru tetapi tautan di Excel terus memunculkan dokumen lama. Saya hanya bisa menyelesaikan ini dengan membersihkan cache dokumen di IE, meskipun saya menjalankan Excel 2016 pada mesin Windows 10. Semoga ini membantu.

Mark
sumber