การเขียน URL ใหม่ด้วยโมดูล URL Rewrite ของ IIS

ฉันเพิ่งเขียนเกี่ยวกับวิธีการใช้โมดูล mod_rewrite ของ Apache เพื่อทำการเขียน URL ใหม่ วันนี้ฉันจะให้คุณแนะนำการทำสิ่งเดียวกัน แต่ด้วยโมดูลการเขียนซ้ำ URL ของ IIS แม้ว่าความคิดจะเหมือนกัน แต่การใช้งานของ IIS นั้นขับเคลื่อนด้วย GUI (แม้ว่าคุณจะสามารถแก้ไขการกำหนดค่าได้โดยตรง) และมีวิธีการเฉพาะในการทำสิ่งต่าง ๆ ของตนเอง

สิ่งแรกที่คุณต้องทำคือติดตั้ง URL Rewrite คุณสามารถดาวน์โหลดได้โดยตรงหรือติดตั้งผ่าน Web Platform Installer (Web PI) เมื่อติดตั้งแล้วคุณจะเห็นไอคอน "Url Rewrite" ใหม่ในคอนโซลการจัดการ IIS ( รูปที่ A )

รูปที่: คอนโซลการจัดการ IIS ที่เพิ่ม URL Rewrite

คุณสามารถจัดการ URL Rewrite ที่ระดับเซิร์ฟเวอร์หรือสำหรับแต่ละไซต์ตามที่เห็นสมควร ผ่านโมดูล URL Rewrite คุณจะเห็น "รูปแบบ" ที่ใช้ รูปแบบอยู่ในหนึ่งในสามโหมด: จับคู่แบบตรงกันสัญลักษณ์แทน (ซึ่งใช้เครื่องหมายดอกจันเพื่อหมายถึง "อะไรที่นี่" และถูกจับเมื่อจับคู่) และนิพจน์ทั่วไปของ ECMAScript ซึ่งเป็นนิพจน์ทั่วไปที่เข้ากันได้ของ Perl

มีกฎสองประเภทคือขาเข้าและขาออก กฎขาเข้าดู URL คำขอและเปลี่ยนแปลง กฎขาออกตรวจสอบปริมาณข้อมูลที่ส่งออกค้นหา URL ภายในและเขียนใหม่ตามที่จำเป็น นี่เป็นสิ่งที่ยอดเยี่ยมเมื่อเนื้อหาอาจใช้ URL แบบสัมบูรณ์ซึ่งไม่ใช่สิ่งที่ผู้ใช้ควรได้รับ (มีประโยชน์อย่างยิ่งในสถานการณ์พร็อกซีย้อนกลับ)

หนึ่งในสิ่งที่ดีเกี่ยวกับ URL Rewrite ก็คือมันสนับสนุนกฎในตัวหลายตัว ( รูปที่ B) ซึ่งทำให้ชีวิตง่ายขึ้นเมื่อคุณต้องการเขียนซ้ำทั่วไป รายการทั้งหมดของกฎในตัวคือ:
  • กฎที่มีการเขียนแผนที่ใหม่: ช่วยให้คุณกำหนดชุดของเส้นทางและการแทนที่เป็นรายการแบบง่าย
  • คำขอบล็อก: ไม่อนุญาตให้เข้าถึงพา ธ
  • URL ที่ใช้งานง่าย: สร้างกฎเพื่อแมปส่วนเส้นทาง (คั่นด้วยเครื่องหมายทับ) เพื่อค้นหาสตริง
  • Reverse Proxy: อนุญาตให้เซิร์ฟเวอร์ปัจจุบันย้อนกลับ proxy อื่น
  • บังคับใช้ URL ตัวพิมพ์เล็ก: ทำให้ไคลเอ็นต์ใช้ URL ตัวพิมพ์เล็กผ่านการเปลี่ยนเส้นทางสถานะ 301 ("ถาวร") เสมอ
  • ชื่อโดเมน Canonical: ใช้สถานะ HTTP 301 ("ถาวร") เปลี่ยนเส้นทางเพื่อให้แน่ใจว่าไคลเอนต์ใช้ชื่อโดเมนที่ระบุเสมอ
  • ผนวกหรือลบสัญลักษณ์สแลชต่อท้าย: จะเพิ่มหรือลบสแลชต่อท้ายในพา ธ URL ทุกครั้งโดยใช้การเปลี่ยนเส้นทางสถานะ 301 ("ถาวร") HTTP

รูปที่ B: การสร้างกฎช่วยให้คุณสามารถเลือกกฎในตัวเพื่อเริ่มต้น

กฎในตัวนั้นยอดเยี่ยมเพราะในขณะที่มันเริ่มต้นคุณด้วยตัวช่วยสร้างที่ปรับแต่งตามความเหมาะสมกฎเหล่านั้นจะสร้างกฎมาตรฐานที่คุณสามารถปรับแต่งหรือปรับเปลี่ยนได้ตามต้องการ

กฎ URL ที่ใช้งานง่ายนั้นเป็นที่นิยมสำหรับผู้ที่ไม่มีระบบที่ทำโดยอัตโนมัติ คุณเริ่มต้นด้วยการป้อนตัวอย่างของ URL "น่าเกลียด" ที่ไซต์ต้องการ ในตัวอย่างของฉันฉันใส่: "http://www.demosite.titaniumcrowbar.com/cms.aspx?cat=docs&id=13" จากนั้นฉันได้เสนอตัวอย่างที่แนะนำสี่รายการของ URL ที่ผู้ใช้เข้าใจง่ายซึ่งแต่ละรูปแบบนั้นมีรูปแบบการแปลเซ็กเมนต์เส้นทางที่แตกต่างกันเล็กน้อยไปยังพารามิเตอร์สตริงแบบสอบถาม ในรายการแบบหล่นลงคุณเลือกตัวอย่างที่คุณชอบมากที่สุดและจะแสดงรูปแบบการจับคู่ URL และรูปแบบการแทนที่ที่จะใช้กฎ เมื่อคุณเลือกแล้วคุณก็สามารถแก้ไขและปรับแต่งได้ตามต้องการ

รูปที่ C: การสร้างกฎ URL ที่ใช้งานง่าย
กฎในตัวอีกตัวที่ฉันใช้ค่อนข้างน้อยก็คือกฎพร็อกซีย้อนกลับ อีกครั้งระบบจะนำคุณเข้าสู่การกำหนดค่าเริ่มต้นที่มีความสามารถซึ่งอาจเป็นงานที่ซับซ้อนมาก ( รูปที่ D ) มีตัวเลือกในตัวที่ดีที่คุณสามารถเปลี่ยนได้เช่นควรให้พร็อกซีตอบสนอง HTTPS กับ HTTP มาตรฐาน (เพื่อลดการโหลดเซิร์ฟเวอร์) เสมอหรือไม่และคุณต้องการใช้กฎขาออกเพื่อปกปิดชื่อเซิร์ฟเวอร์ภายในหรือไม่ ฉันมักจะใช้สิ่งนี้เพื่อให้ฉันสามารถตั้งค่าเซิร์ฟเวอร์กลางหนึ่งรายการกับโฮสต์เว็บเสมือนบนที่อยู่ IP เดียวกันจัดการคำขอขาเข้าที่ควรไปยังเซิร์ฟเวอร์ภายในที่แตกต่างกัน

รูปที่ D: การสร้าง reverse proxy

กฎสุดท้ายที่ฉันต้องการพูดถึงคือการเขียนแผนที่ใหม่ สิ่งเหล่านี้ช่วยให้คุณสร้างรายการ URL และแปลเป็น URL ที่ถูกแทนที่ โดยตัวมันเองแผนที่ที่เขียนใหม่นั้นไม่มีประโยชน์มันจำเป็นต้องใช้เป็นส่วนหนึ่งของกฎที่ใหญ่กว่าแทนหรือใช้ร่วมกับรูปแบบการทดแทน ที่ซึ่งสิ่งเหล่านี้มีประโยชน์อย่างยิ่งในประสบการณ์ของฉันคือเมื่อคุณกำลังออกแบบใหม่หรือจัดระเบียบไซต์ที่ใช้ URL ที่ไม่สามารถคาดเดาได้ (เช่นไซต์ HTML แบบคงที่จำนวนมาก) โดยการรวมการเปลี่ยนเส้นทางโดยใช้สถานะ HTTP 301 ("ถาวร") กับแผนที่เขียนใหม่คุณสามารถปรับแต่งการแปลของคุณในสถานการณ์ที่กฎไม่ทำงานได้ดี

เมื่อคุณตั้งค่ากฎพื้นฐานแล้ว (หรือใช้กฎว่างเปล่า) คุณสามารถแก้ไขได้ตามต้องการ ตัวแก้ไขกฎ ( รูป E ) จะแยกสิ่งต่าง ๆ ได้ดีจริงๆ คุณเริ่มต้นด้วยชื่อกฎและรูปแบบ URL ที่จะจับคู่ (หรือไม่ตรงกัน) จากตรงนั้นคุณสามารถเพิ่มเงื่อนไขที่หลากหลายเช่นค้นหาสตริงเฉพาะในพารามิเตอร์ของ URL ตัวแปรสภาพแวดล้อมของเซิร์ฟเวอร์และอื่น ๆ คุณสามารถบอกให้ตรงกับทั้งหมดหรือตรงกับเงื่อนไขใด ๆ หากไม่ตรงตามเงื่อนไขกฎจะไม่ทำการเขียนใหม่ นอกจากนี้คุณยังสามารถทำการแทนค่าตัวแปรเซิร์ฟเวอร์ซึ่งเหมาะสำหรับการบังคับใช้พฤติกรรมบางอย่าง ตัวแปรของเซิร์ฟเวอร์ประกอบด้วยรายการสิ่งต่าง ๆ ที่มีขนาดใหญ่มากรวมถึงแผนที่เขียนใหม่ที่คุณสร้างขึ้น ถัดไปคุณกำหนดสิ่งที่กฎควรทำจริง: ดำเนินการ "เขียนใหม่" (ซึ่งมีเซิร์ฟเวอร์ปฏิบัติตามคำขอราวกับว่า URL ที่เขียนใหม่เป็นสิ่งที่ลูกค้าร้องขอ) หรือ "เปลี่ยนเส้นทาง" ซึ่งจริง ๆ แล้วจะส่งรหัสสถานะ HTTP เปลี่ยนเส้นทาง ( คุณจะต้องเลือกอันใดอันหนึ่งให้กับลูกค้าเพื่อให้พวกเขาค้นหา URL ใหม่ จากนั้นคุณกำหนดรูปแบบสำหรับการเขียนใหม่เอง ในที่สุดคุณมีตัวเลือกน้อย:
  • ต่อท้ายสตริงแบบสอบถาม
  • กำลังบันทึกคำขอ
  • ไม่ได้เรียกใช้กฎใด ๆ อีกต่อไปเมื่อกฎนี้เสร็จสิ้น

รูปที่ E: เครื่องมือแก้ไขกฎ

ด้วยส่วนผสมพื้นฐานเหล่านี้คุณสามารถสร้างสูตรการเขียน URL ใหม่ที่คุณต้องการได้ ฉันใช้การเขียน URL ซ้ำสำหรับทั้งงานที่เรียบง่ายและซับซ้อนและฉันก็ไม่ผิดหวัง

© Copyright 2020 | mobilegn.com