Bagaimana cara menambahkan tautan relatif (nama file pada mesin jarak jauh di jaringan) di halaman PHP [duplikat]

Ada tiga mesin - 1. Server - tempat aplikasi disebarkan. Sebut saja Mesin1. 2. Mesin Kedua tempat beberapa file disimpan. Sebut saja mesin ABC. 3. Mesin tempat saya mengakses aplikasi yang digunakan di Mesin1.

Katakanlah, http://testapplication.com:8080/pagedirectory/viewCart.php

Pada viewCart.php ada beberapa link yang ditampilkan seperti \\ABC\Folder1\file.xml. Jika saya mengakses jalur ini secara langsung dengan mengetik atau menyalin ke browser, jalur ini berfungsi dan saya dapat melihat file. Tetapi jika saya mengklik halaman web, halaman tersebut tidak terbuka dan menimbulkan kesalahan - The requested URL /pagedirectory/\\ABC\Folder1\file.xml was not found on this server.

Jika saya mengarahkan mouse ke tautan ini, di bilah status di bagian bawah browser, saya melihatnya

http://testapplication.com:8080/pagedirectory/\\ABC\Folder1\file.xml

Jadi, tampaknya ia menambahkan direktori dasar tempat halaman dipanggil ke semua tautan dan karenanya menimbulkan kesalahan.

Log mengatakan Found %2f (encoded '/') in URI (decoded = '/somepath')...returning 404 referer di log Apache ketika saya mencoba mengklik tautan di atas yang ditampilkan pada halaman dari mesin saya. Jika saya mengakses aplikasi di mesin tempat aplikasi tersebut dihosting, aplikasi tersebut berfungsi sempurna tanpa masalah. Jadi apa yang saya lakukan salah? Saya melihat di beberapa posting untuk menggunakan AllowEncodedSlashes On tetapi tidak yakin di mana harus meletakkannya dan saya tidak menggunakan host virtual apa pun.

Tolong bantu !!.


person anujin    schedule 25.09.2012    source sumber


Jawaban (1)


Beberapa ide:

  1. Anda perlu mengubah "\" itu ke arah lain untuk URL Anda
  2. Jika ini menambahkan direktori dasar maka Anda mungkin memiliki url relatif -- jika href="/idsomething" Anda, ia akan masuk ke/base/directory/something. Tetapi jika Anda menggunakan url absolut href="/id/something" maka itu akan masuk ke /something
  3. Jika itu bukan URL relatif, periksa konfigurasi Apache Anda dan pastikan Anda tidak menerapkan aturan penulisan ulang yang funky.
person Mike Graf    schedule 25.09.2012
comment
terima kasih Mike atas sarannya. Namun jika demikian, saya seharusnya tidak dapat mengakses URL dengan mengakses aplikasi dari mesin tempat aplikasi tersebut diterapkan. Jadi, jika saya mencoba dari Mesin1 baik-baik saja tetapi dari mesin lain, tidak berfungsi. - person anujin; 25.09.2012