Score:2

กระบวนการที่เหมาะสมในการปรับแต่งไฟล์ htaccess คืออะไร?

ธง cn

เรามีลิงก์เปลี่ยนเส้นทางที่กำหนดเองซึ่งใช้กฎ RedirectMatch ที่เปลี่ยนเส้นทางตามเส้นทางรูท เราควรจัดการสิ่งเหล่านี้ในระดับเว็บเซิร์ฟเวอร์มากกว่าการใช้โมดูลการเปลี่ยนเส้นทาง (หากสามารถจับคู่ตามกฎได้) ดังนั้นเราจึงวางกฎเหล่านี้ไว้ใน .htaccess ไฟล์ เช่น:

RedirectMatch 301 ^/computing/hpc[/]?(.*) https://hpc.our.domain/$1

ตั้งแต่ .htaccess ไฟล์ได้รับการอัปเดตด้วยการติดตั้งผู้แต่งเนื่องจากโครงร่าง ขั้นตอนที่ดีที่สุดในการเพิ่มกฎของเราลงในไฟล์คืออะไร ฉันไม่ได้ต้องการป้องกันไม่ให้นั่งร้านปรับปรุง .htaccess ไฟล์ แต่ฉันอาจต้องแก้ไขแพทช์ของเราเป็นครั้งคราวเพื่อให้ใช้กับเวอร์ชันใหม่ล่าสุด

คุณจะแก้ไขและอัปเดตแพตช์อย่างไรเมื่อจำเป็นต้องเพิ่มหรือลบบางสิ่ง

leymannx avatar
ne flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ผู้แต่งเขียนทับ .htaccess (และไฟล์อื่นๆ) ทุกครั้งที่ฉันทำอะไร](https://drupal.stackexchange.com/questions/290989/composer-keeps-overwriting-htaccess-and-other-files-every-time- ฉันทำอะไรก็ได้)
shelane avatar
cn flag
ไม่เชิง. ฉันได้แก้ไขคำถามของฉันเพื่อหวังว่าจะชัดเจนยิ่งขึ้น
Score:1
ธง cn

ขึ้นอยู่กับระดับของการปรับแต่ง มีสองกลยุทธ์ที่คุณสามารถใช้ได้

  • แก้ไข drupal/core ด้วยไฟล์ htaccess ที่แก้ไขแล้ว รวมถึงการปรับแต่งของคุณ
  • แทนที่ไฟล์ htaccess ผ่านนั่งร้าน

หากคุณเลือกตัวเลือกแรก นี่เป็นวิธีที่ง่ายมากที่จะทำ

  1. ตรวจสอบเวอร์ชันของ Drupal ที่คุณใช้กับโฟลเดอร์
  2. ปรับไฟล์ htaccess ใน asset/scaffold
  3. วิ่ง git diff > htaccess.patch.
  4. กลับไปที่โปรเจ็กต์ของคุณและสร้างโฟลเดอร์แพตช์ วางไฟล์ใหม่ไว้ข้างใน
  5. เพิ่มสิ่งต่อไปนี้ใน Composer.json พิเศษ ส่วน (ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง cweagans/composer-patches):
"แพตช์": {
  "drupal/คอร์": {
    "เพิ่มการเปลี่ยนเส้นทาง": "แพทช์/htaccess.patch"
  }
}

หากคุณเลือกตัวเลือกที่สอง:

  1. สร้างโฟลเดอร์สินทรัพย์/นั่งร้านในโครงการของคุณ
  2. คัดลอกไฟล์ htaccess ที่อยู่ภายใน
  3. ทำการปรับเปลี่ยนไฟล์
  4. เพิ่มสิ่งต่อไปนี้ใน Composer.json พิเศษ ส่วน:
"drupal-scaffold": {
  "สถานที่": {
    "เว็บรูท": "เว็บ/"
  },
  "การแมปไฟล์": {
    "[web-root]/.htaccess": "สินทรัพย์/scaffold/.htaccess"
  }
}
Score:0
ธง cn

คำตอบของ Ryan Hartman นั้นยอดเยี่ยมมาก เราลงเอยด้วยการใช้เส้นทางที่แตกต่างกันเล็กน้อย เช่นเดียวกับ Drupal มักจะมีหลายวิธีในการทำสิ่งต่างๆ

เราได้เพิ่มส่วนนี้ลงในของเรา ผู้แต่ง.json ไฟล์:

"สคริปต์": {
        "หลัง drupal-scaffold-cmd": [
            "ซีดี docroot && patch -p1 <../patches/htaccess.patch"
        ]
    }

ของเรา .htaccess ไฟล์ยังคงเป็นส่วนหนึ่งของ repo git ของเรา ทุกครั้งที่เราจำเป็นต้องแก้ไขกฎ เราทำการเปลี่ยนแปลงที่จำเป็นทั้งหมดใน .htaccess ไฟล์ จากนั้นเราเรียกใช้สคริปต์ทุบตี (จริง ๆ แล้วคือคำสั่งครีบแบบกำหนดเองของ Docksal) ที่สร้างไฟล์แก้ไข สคริปต์มีลักษณะดังนี้:

mkdir temphtaccess
cd temptaccess
เริ่มต้นคอมไพล์
cp "${DOCROOT_PATH}/core/assets/scaffold/files/htaccess" "${PROJECT_ROOT}/temphtaccess/.htaccess"
คอมไพล์เพิ่ม .
git commit -m 'นั่งร้าน htaccess กระทำ'
cp "${DOCROOT_PATH}/.htaccess" "${PROJECT_ROOT}/temphtaccess/.htaccess"
git diff > ../patches/htaccess.patch
cd ${PROJECT_ROOT} && rm -rf temphtaccess

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา