ฉันจะเปลี่ยน URL พื้นฐานได้อย่างไร


15

ใน Drupal 7 เราสามารถเปลี่ยน URL พื้นฐานของเว็บไซต์ได้อย่างรวดเร็ว
ฉันจะทำสิ่งนี้ใน Drupal 8 ได้อย่างไร

คำตอบ:


14

ใน Drupal 8 ตัวเลือกนี้ได้ถูกลบออก คุณไม่จำเป็นต้องกำหนดค่า base_urlให้เรียกใช้เว็บไซต์ของคุณ Drupal 8 สามารถตรวจจับสิ่งนี้ได้โดยไม่ต้องขอความช่วยเหลือ ถ้าไม่คุณควรตรวจสอบการกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณก่อน

แทนที่จะเป็นbase_urlคุณควรกำหนดค่าtrusted_host_patternsใน settings.php ไม่จำเป็นต้องเรียกใช้เว็บไซต์ แต่สำคัญสำหรับเหตุผลด้านความปลอดภัย

ข้อมูลเพิ่มเติม: ลบตัวเลือก base_url ออกจาก settings.phpและการตั้งค่าใหม่สำหรับการกำหนดค่าชื่อโฮสต์ที่เชื่อถือได้

แก้ไข:

มีบางกรณีการใช้งานพิเศษเมื่อรัน drupal จากบรรทัดคำสั่งหรือ reverse proxy ซึ่งเคยใช้ $ base_url ในอดีต สิ่งนี้ไม่สามารถได้รับการสนับสนุนในลักษณะเดียวกันอีกต่อไปเพราะ symfony มีการพูดคุยกันถึงวิธีการแก้ไขปัญหาสำหรับกรณีเหล่านี้ นี่ไม่ได้หมายความว่าคุณไม่สามารถรัน drupal จากบรรทัดคำสั่งหรือ reverse proxy วิธีมาตรฐานเป็นไปได้แน่นอนโดยไม่มีปัญหา

คุณสามารถติดตามการพัฒนาได้ที่นี่: https://www.drupal.org/node/2753591


1
ขออภัยคำตอบนี้ทำให้เข้าใจผิดบางส่วน คุณสามารถกำหนดค่าเว็บเซิร์ฟเวอร์ที่ถูกต้องสมบูรณ์แบบและยังต้องการ base_url $ base_url กลับมาที่นี่อีกครั้ง: drupal.org/node/2753591
Fidelix

ตอนที่ฉันเขียนคำตอบ $ base_url หายไป ถ้ามันจะกลับมาโอเค แต่เวลาส่วนใหญ่คุณไม่ต้องการสิ่งนี้จริงๆถ้าคุณกำหนดค่าการติดตั้งหลายรายการบนโฮสต์เดียวกันกับ vhosts และ dns ซึ่งสภาพแวดล้อมการโฮสต์ที่ใช้ร่วมกันส่วนใหญ่จะเสนอเป็นตัวเลือกการกำหนดค่ามาตรฐาน
4k4

ตกลง แต่มันทำให้เข้าใจผิดว่าการกำหนดค่าเว็บเซิร์ฟเวอร์เสียถ้าคุณต้องการ $ base_url มีกรณีการใช้งานที่ถูกต้องมากมายซึ่งรับประกัน $ base_url
Fidelix

2
นี่คือแรงจูงใจในการลบ $ base_url: drupal.org/node/2528988 (กรณีการใช้งานที่ถูกต้องมากมาย: คุณสามารถย้าย drupal 8 ไปยังไดเรกทอรีย่อยได้ตลอดเวลาและจะรับรู้สิ่งนี้ในคำขอถัดไปโดยไม่มีการเปลี่ยนแปลงการกำหนดค่า)
4k4

ตกลงฉันเห็นตอนนี้ในหัวข้อที่เชื่อมโยงจุดของคุณฉันจะเปลี่ยนคำตอบ
4k4

5

ฉันคิดว่าจำเป็นต้องมีการปรับแต่งบางอย่างเมื่อย้ายระหว่างการผลิต (http: // example.com/) และ dev (http: // localhost / ~ aviram / example.com /) แต่ไม่ D8 ฉลาดพอที่จะแก้ไขลิงก์โดยอัตโนมัติ

หลังจากย้ายไซต์ที่สมบูรณ์ (ไฟล์ PHP และดัมพ์ DB) ให้ทำตามกระบวนการอัพเดตฐานข้อมูล D8 ( http://example.com/update.php ) แม้ว่าจะไม่มีการอัพเดตสำหรับโมเดลฐานข้อมูล วิธีนี้แก้ไขปัญหา

ฉันได้เรียนรู้ว่านี่เป็นปัญหาเกี่ยวกับแคชของ Drupal 8 อาจเป็นเพราะเนื้อหาบางส่วนที่แสดงผลล่วงหน้าถูกเก็บไว้ในไซต์ / default / files / php / และกระบวนการ update.php จะล้างแคชนี้


1
ใช่ /update.php จะล้างแคชเสมอแม้ว่าจะไม่มีการอัพเดทก็ตาม นี่เป็นเคล็ดลับที่ดีในการทำให้ไซต์ทำงานหลังจากย้ายไปยังที่ใหม่หากคุณไม่ต้องการหรือไม่สามารถเข้าถึงวิธีอื่นเพื่อล้างแคช
4k4
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.