ຕິດຕາມການປ່ຽນເສັ້ນທາງແບບສຳພັນຜ່ານພຣັອກຊີ
ແກ້ໄຂ Location ແບບສຳພັນທຽບກັບ URL ປາຍທາງປັດຈຸບັນ ໂດຍເກັບທີ່ຢູ່ພຣັອກຊີໄວ້ນອກການແກ້ໄຂ URL.
ການຕອບສະໜອງທີ່ໄດ້ຮັບຜ່ານພຣັອກຊີອາດສົ່ງ Location ແບບສຳພັນກັບຄືນ:
Location: ../new/
HTTP ສະໄໝໃໝ່ອະນຸຍາດໃຫ້ໃຊ້ URI ອ້າງອີງຢູ່ນີ້. ແກ້ໄຂມັນທຽບກັບ URL ທີ່ສ້າງການຕອບສະໜອງ. ຖ້າ URL ນັ້ນແມ່ນ https://docs.example/catalog/old/ ການອ້າງອີງຂ້າງເທິງຊີ້ໄປທີ່ https://docs.example/catalog/new/. ຊື່ໂຮສຂອງພຣັອກຊີບໍ່ແມ່ນພື້ນຖານ.
ສຳລັບຄຳຮ້ອງ Python urllib ທົ່ວໄປ ໃຫ້ໃຊ້ຕົວຈັດການປ່ຽນເສັ້ນທາງຂອງມັນ ແທນການຕໍ່ສາຍອັກສອນອ້ອມຈຸດປາຍພຣັອກຊີ:
opener = build_opener(ProxyHandler({
"https": "http://proxy.example:8080",
}))
with opener.open("https://docs.example/catalog/old/",
timeout=15) as response:
final_url = response.geturl()
ສຳລັບຄຳຮ້ອງເອກະສານສາທາລະນະທີ່ບໍ່ມີການຢືນຢັນພຣັອກຊີນີ້ ຜູ້ສະໝັກ HTTP ຈາກລາຍຊື່ພຣັອກຊີ HTTP ສາມາດປ່ຽນແທນຈຸດປາຍຕົວຢ່າງໄດ້ ເມື່ອເສັ້ນທາງໄດ້ຮັບອະນຸຍາດ. ຄລາສຕ່າງໆມາຈາກ urllib.request. ຕົວຈັດການປົກກະຕິຂອງມັນຕິດຕາມການປ່ຽນເສັ້ນທາງທີ່ຮອງຮັບພາຍໃນຂອບເຂດຂອງມັນ. final_url ອະທິບາຍ URL ຊັບພະຍາກອນສຸດທ້າຍ ບໍ່ແມ່ນຕົວກາງທີ່ໃຊ້ເພື່ອໄປຮອດມັນ.
ແກ້ໄຂກ່ອນ ແລ້ວຈຶ່ງເລືອກເສັ້ນທາງຕໍ່ໄປ
ການປ່ຽນເສັ້ນທາງສາມາດປ່ຽນໂຮສ ຫຼື ແຜນຜັງປາຍທາງ. ດັ່ງນັ້ນນະໂຍບາຍພຣັອກຊີທີ່ອີງໃສ່ປາຍທາງຕ້ອງປະເມີນ URL ໃໝ່ນັ້ນນຳ. ເສັ້ນທາງທີ່ເຮັດວຽກກັບໂຮສທຳອິດອາດບໍ່ແມ່ນເສັ້ນທາງສຳລັບໂຮສຕໍ່ໄປ.
ເມື່ອທ່ານຈັດການການປ່ຽນເສັ້ນທາງເອງ ໃຫ້ໃຊ້ການແກ້ໄຂ URI ອ້າງອີງພ້ອມການຈັດການພາກສ່ວນຈຸດ. ຮັກສາກົດຂອງວິທີການຕາມລະຫັດສະຖານະຈິງ ແລະ ກຳນົດຂອບເຂດການປ່ຽນເສັ້ນທາງ. ການຕໍ່ Location ໃສ່ຊື່ໂຮສບໍ່ແມ່ນຕົວແທນຂອງຂັ້ນຕອນການແກ້ໄຂນັ້ນ.
ຖ້າການປ່ຽນເສັ້ນທາງລົ້ມເຫຼວ ໃຫ້ເກັບ URL ທີ່ຮ້ອງຂໍ ສະຖານະການຕອບສະໜອງ ຄ່າ Location ແລະ URL ຕໍ່ໄປທີ່ແກ້ໄຂແລ້ວ. ສີ່ຄ່ານີ້ໂດຍປົກກະຕິສະແດງວ່າຄວາມຜິດພາດເປັນຂອງການສ້າງ URL ຫຼື ຂອງການເຊື່ອມຕໍ່ທີ່ລອງຫຼັງຈາກນັ້ນ.