Score:1

วิธีทำให้ mod_rewrite บังคับให้เปลี่ยนเส้นทาง

ธง fr

ฉันจำเป็นต้องเปลี่ยนเส้นทางเว็บไซต์ชั่วคราวไปยังเวอร์ชันคงที่ที่โฮสต์บน Cloudflare ไซต์ปัจจุบันเป็นไซต์ Wordpress ที่โฮสต์ที่ Ionos และ Wordpress ดูเหมือนว่าจะเปลี่ยนเส้นทาง 301 จาก มายโดเมน.คอม ถึง www.mydomain.com. ฉันต้องการเข้าถึงอินสแตนซ์ Wordpress ต่อไปโดยไปที่ www.mydomain.com แต่ถ้าฉัน (หรือใครก็ตาม) ไป มายโดเมน.คอม ฉันต้องการที่จะเปลี่ยนเส้นทางไปที่ static.mydomain.com.

ฉันใส่สิ่งนี้ในของฉัน .htaccess ไฟล์:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteRule ^(.*) https://static.mydomain.com/$1 [R=302,L]
</IfModule>

แต่เมื่อฉันไปเยี่ยม มายโดเมน.คอม ฉันยังคงเปลี่ยนเส้นทางไปที่ www.mydomain.com ดังนั้นดูเหมือนว่า .htaccess RewriteRule จะไม่ถูกทริกเกอร์ ดังนั้น Wordpress จึงทำการเปลี่ยนเส้นทาง

มีวิธีใดบ้างใน .htaccess (ฉันไม่สามารถเข้าถึงไฟล์กำหนดค่า Apache) เพื่อบังคับให้เปลี่ยนเส้นทางเหมือนที่ฉันอธิบาย

Score:1
ธง kz

ฉันถือว่าไซต์ของคุณเป็นเวอร์ชันคงที่ (ที่ static.example.com) เป็นไซต์คงที่ที่ไม่ใช่ WordPress ดังนั้นตัวมันเองจึงไม่สามารถอธิบายถึงการเปลี่ยนเส้นทางใดๆ ได้

ไม่มีอะไร "ผิด" กับกฎของคุณตามที่โพสต์ อย่างไรก็ตาม, ...

  1. การเปลี่ยนเส้นทาง "WordPress" 301 (ถาวร) ก่อนหน้าจาก non-www ไปยัง www จะถูกแคช (อย่างต่อเนื่อง) โดยเบราว์เซอร์ (และอาจเป็นแคชตัวกลาง) สิ่งนี้จะต้องถูกล้างด้วยตนเองสำหรับการเปลี่ยนเส้นทางของคุณ .htaccess จะมีผลใดๆ

  2. การเปลี่ยนเส้นทางของคุณต้องไปที่ สูงสุด ของ .htaccess ไฟล์ ก่อน บล็อกรหัส WordPress (เขียนใหม่ไปยังตัวควบคุมด้านหน้า) เช่น ก่อน เดอะ # เริ่มต้น WordPress เครื่องหมายความคิดเห็น หากคุณวางการเปลี่ยนเส้นทางไว้ที่ส่วนท้ายของไฟล์ (หรือหลังบล็อกโค้ด WordPress) การเปลี่ยนเส้นทางจะถูกดำเนินการเฉพาะเมื่อร้องขอไปยังทรัพยากรแบบคงที่ (และไดเร็กทอรี) URL ของ WordPress (เสมือน) จะไม่เปลี่ยนเส้นทาง เนื่องจากคำขอได้ถูกเขียนใหม่แล้ว index.php (ตัวควบคุมด้านหน้าของ WordPress)


นอกเหนือ:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteRule ^(.*) https://static.mydomain.com/$1 [R=302,L]
</IfModule>

จัดระเบียบนิดหน่อย...คุณไม่จำเป็นต้องทำซ้ำ RewriteEngine เปิดอยู่ คำสั่งเนื่องจากสิ่งนี้ปรากฏขึ้นแล้ว ภายหลัง ในไฟล์ ในบล็อคโค้ด WordPress

คุณไม่จำเป็นต้อง <IfModule> กระดาษห่อ การเปลี่ยนเส้นทางนี้จะต้องเกิดขึ้น มันไม่ใช่ ไม่จำเป็น.

ที่สอง เงื่อนไข (เขียนซ้ำ คำสั่ง) ไม่จำเป็น ไม่จำเป็นต้องตรวจสอบว่า เจ้าภาพ เป็น และไม่ . (ถ้ามัน ก็คงเป็นไปไม่ได้ เช่นกัน.)

ดังนั้น ข้างต้นสามารถทำให้ง่ายขึ้นเป็น:

# เปลี่ยนเส้นทางโดเมนเอเพ็กซ์ชั่วคราวไปยังโดเมนย่อย "คงที่"
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule (.*) https://static.example.com/$1 [R=302,L]

# เริ่มต้น WordPress
: แนวทางอื่นๆ ตามมา....

โพสต์คำตอบ

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