Back to Question Center
0

Semalt: ໄຟລ໌ htaccess ເພື່ອປະຕິບັດການໂອນຍ້າຍຫຼາຍ

1 answers:

ຂ້ອຍມີເວັບໄຊທ໌ແບບເຄື່ອນໄຫວແລະຈາກ . ໄຟລ໌ htaccess ສ້າງ URL ທີ່ສະອາດ:

     RewriteCond% {REQUEST_URI}! (\. png | \. jpg | \ - autokummide müük. gif | \. jpeg | \. bmp) $
RewriteRule ([a-zA-Z0-9 _ \ - \ + \] +) $ flight. php? flights = $ 1 & slug = $ 1    

ລະຫັດນີ້ເຮັດວຽກໄດ້ດີສໍາລັບຂ້ອຍແຕ່ເມື່ອຂ້ອຍສ້າງຫນ້າປະເພດໃຫມ່ແລະພະຍາຍາມທີ່ຈະໄດ້ຮັບ URL ທີ່ສະອາດດ້ວຍລະຫັດດຽວກັນຂ້ອຍ. e. :

     RewriteCond% {REQUEST_URI}! (\. png | \. jpg | \. gif | \. jpeg | \. bmp) $
RewriteRule ([a-zA-Z0-9 _ \ - \ + \] +) $ manual-page. php? url = $ 1 & slug = $ 1    

ມັນບໍ່ໄດ້ເຮັດວຽກແລະຖ້າຂ້ອຍສະແດງຄໍາວ່າສອງເສັ້ນກ່ອນຫນ້ານັ້ນມັນຈະເຮັດວຽກດີ.

ພຽງແຕ່ລະຫັດຫນຶ່ງທີ່ເຮັດວຽກຢູ່ໃນແຕ່ລະຄັ້ງ.

ສໍາລັບຄັ້ງທໍາອິດຂ້ອຍມີໂດເມນ URL . com / flight. php? flight-san-francisco-london-flights ແລະຂ້ອຍຕ້ອງການນີ້ຖືກສົ່ງກັບ ໂດເມນ. com / san-francisco-london-flights & ຈາກທີ່ສອງຂ້າພະເຈົ້າມີ ໂດເມນ. com / manual-page. php? url = my-new-page ແລະຂ້ອຍຕ້ອງການນີ້ຈະຖືກສົ່ງກັບ ໂດເມນ. com / my-new-page .

ເຫຼົ່ານີ້ແມ່ນວິທີໃດທີ່ຈະເຮັດວຽກຮ່ວມກັນໄດ້?

February 6, 2018

ສອງ RewriteRules ຂອງທ່ານສອດຄ່ອງກັບເສັ້ນທາງດຽວກັນຂອງເສັ້ນທາງ URL ແລະມີ RewriteCond ດຽວກັນ, ດັ່ງນັ້ນມັນບໍ່ແປກໃຈທີ່ວ່າທໍາອິດທີ່ຈັບໄດ້ເສັ້ນທາງທີ່ກົງກັນແລະບໍ່ມີຫຍັງສໍາລັບສອງ.

ເພື່ອແກ້ໄຂບັນຫານີ້, ທ່ານຕ້ອງຕັດສິນໃຈທໍາອິດ ເຮັດແນວໃດ ທ່ານຈະບອກສອງຊຸດຂອງ URL ອອກ. ດັ່ງນັ້ນ, ໃນເວລາທີ່ຕົວທ່ອງເວັບຂອງຜູ້ໃຊ້ຮ້ອງຂໍ http: // ໂດເມນ. com / my-new-page , ສະມາດເວັບໄຊທ໌ຂອງທ່ານຈະຮູ້ໄດ້ແນວໃດວ່າຄໍາຮ້ອງຂໍນີ້ຄວນຖືກນໍາໃຊ້ໂດຍ ຫນ້າຄູ່ມື. php ແລະບໍ່ໂດຍ ການບິນ. php ?

ອີງຕາມວິທີທີ່ທ່ານຕັດສິນໃຈເຮັດ, ທ່ານມີສອງທາງເລືອກໃນການປະຕິບັດຕົວຈິງ:

  • ຖ້າຄວາມແຕກຕ່າງສາມາດສະແດງອອກເປັນ regexp ທ່ານສາມາດປ່ຽນ RewriteRule ທໍາອິດເພື່ອຈະບໍ່ກົງກັບເສັ້ນທາງ URL ທີ່ຄວນຈະຖືກຈັດການໂດຍທີ່ສອງ. ຕົວຢ່າງ: ຖ້າ slugs ທັງຫມົດສໍາລັບຫນ້າບິນທີ່ containg ຄໍາວ່າ "flight", ແລະ none of those for other pages ເຮັດ, ທ່ານສາມາດທົດແທນ RewriteRule ທໍາອິດດ້ວຍ:

      RewriteCond% {REQUEST_URI}! (\. png | \. jpg | \. gif | \. jpeg | \. bmp) $
    RewriteRule ([a-zA-Z0-9 _ \ - \ + \] * flight [a-zA-Z0-9 _ \ - \ + \] *) $ flight. php? flights = $ 1 & slug = $ 1 
  • ອີກທາງເລືອກ, ທ່ານສາມາດມີ ທັງຫມົດ ການຮ້ອງຂໍຄັ້ງທໍາອິດໂດຍການເວົ້າ, ການບິນ. php , ແລະປັບປຸງແກ້ໄຂ script ນັ້ນເພື່ອໃຫ້ມັນໂທຫາ ຄູ່ມືຫນ້າ. php ຖ້າມັນບໍ່ສາມາດຊອກຫາຫນ້າໃດຫນຶ່ງທີ່ຈະສະແດງ. ຫຼືທ່ານສາມາດຂຽນສະປາຍຫນ້າດຽວທີ່ໃຊ້ເວລາການຮ້ອງຂໍທັງຫມົດ, ກວດເບິ່ງຖານຂໍ້ມູນເພື່ອເບິ່ງກຸ່ມທີ່ພວກເຂົາຢູ່ໃນ, ແລະໂທຫາສະຄິບທີ່ເຫມາະສົມເພື່ອຈັດການກັບພວກມັນ.

  • ສຸດທ້າຍ, ຖ້າສະຄິບເຮັດຫຼາຍຫລືຫນ້ອຍສິ່ງດຽວກັນ, ມີຄວາມແຕກຕ່າງເລັກຫນ້ອຍ, ທ່ານອາດຈະຕ້ອງສົມທົບພວກເຂົາເຂົ້າໄປໃນ script ດຽວທີ່ສາມາດຮັບໃຊ້ທັງສອງຊະນິດຂອງຫນ້າ.