ฉันแก้ไขปัญหานี้โดยกำหนดตัวแปรสภาพแวดล้อมใหม่ที่เรียกว่า APP_HOST
ในแผงควบคุม Google Cloud Run และตั้งค่าเป็น ตัวอย่าง.คอม
.
จากนั้นฉันเพิ่มการกำหนดค่าต่อไปนี้ในไฟล์ .htaccess
ไฟล์ในรูทเอกสาร:
<IfModule mod_env.c>
PassEnv APP_HOST
</IfModule>
<IfModule mod_headers.c>
RequestHeader set Host %{APP_HOST}e env=APP_HOST
</IfModule>
สิ่งนี้ทำให้ฉันสามารถแทนที่ เจ้าภาพ
ส่วนหัวจาก ตัวอย่าง-8gnm1aqrns-lz.a.run.app
ถึง ตัวอย่าง.คอม
ขึ้นอยู่กับตัวแปรสภาพแวดล้อม APP_HOST
.
แน่นอนว่าฉันสามารถฮาร์ดโค้ดชื่อโฮสต์ได้ แต่ฉันคิดว่าการใช้ตัวแปรสภาพแวดล้อมช่วยให้คุณมีความยืดหยุ่นมากขึ้นหากคุณต้องการใช้ชื่อเดียวกัน .htaccess
ไฟล์ในบริบทที่แตกต่างกัน เช่น บนเซิร์ฟเวอร์ชั่วคราว
แก้ไข
นี่คือวิธีที่คุณสามารถแก้ไขได้โดยใช้ X-ส่งต่อโฮสต์
ตัวอย่างเช่น หากคุณใช้งานโฮสต์เสมือนและคุณต้องการไซต์เพื่อให้สามารถเข้าถึงได้จากหลายโดเมน
<IfModule mod_setenvif.c>
SetEnvIf X-Forwarded-Host (.*) REAL_HOST_HEADER=$1
<IfModule mod_headers.c>
RequestHeader set Host "%{REAL_HOST_HEADER}e"
</IfModule>
</IfModule>
สิ่งนี้จะคว้าส่วนหัวจาก X-ส่งต่อโฮสต์
และตั้งค่า เจ้าภาพ
ส่วนหัวตามค่า