Back to Question Center
0

https redirects + Cloudflare Page สถานการณ์ Semalt หายไป

1 answers:

ฉันเพิ่งย้ายเว็บไซต์ของฉันไปยัง HTTPS และหลังจากที่กลัวบางอย่างกำลังทำงานอยู่ส่วนใหญ่.

ฉันได้พบว่าเมื่อฉันใส่โดเมนเปลือยเปล่าในเบราว์เซอร์จะไม่ไป URL ที่ต้องการดังต่อไปนี้

  • พิมพ์ URL = ตัวอย่าง. com
  • เปลี่ยนเส้นทางไปที่ https: // ตัวอย่าง - water harvesting methods in india. com
  • URL ที่ต้องการ = https: // www. ตัวอย่าง. com

กฎของเพจต่อไปนี้ตั้งอยู่บน Cloudflare:

  • pattern = http: // * example. com / *
  • rule = การส่งต่อไปยัง https: // www. ตัวอย่าง. com / $ 2

บนเซิร์ฟเวอร์ต้นทาง. ไฟล์ htaccess มี:

     RewriteCond% {HTTPS} ปิดRewriteRule (. *) https: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]    

ฉันขาดอะไร?

February 7, 2018

% {HTTP_HOST} จะอ้างถึงโฮสต์ใดก็ตามที่เข้าถึงไซต์ได้. กล่าวคือ. ตัวอย่าง. com หรือ www. ตัวอย่าง. com . เปลี่ยนเส้นทางไปที่ www เสมอ. ตัวอย่าง. com แล้วก็ใส่นี้ในการทดแทน:

  RewriteCond% {HTTPS} ปิด
RewriteRule. * https: // www. ตัวอย่าง. com% {REQUEST_URI} [R = 301, L] 

แต่ถ้าคุณไม่มีกฎที่คล้ายคลึงกันก่อนตัวอย่างเช่น . com และ www. ตัวอย่าง. com จะสามารถเข้าถึงได้ (และสามารถทำดัชนีได้). ในความเป็นจริงถ้าคุณเข้าถึง https: // example. com ตอนนี้ไม่ได้เปลี่ยนเส้นทางไปที่ https: // www. ตัวอย่าง. com . นอกจากนี้คุณต้องมีข้อมูลต่อไปนี้ด้วย:

  RewriteCond% {HTTP_HOST}! www \. RewriteRule. * https: // www. % {HTTP_HOST}% {REQUEST_URI} [R = 301, L] 

ดังนั้นสรุปได้ว่าบล็อคแรกแก้ไขสำหรับ HTTP -> HTTPS และตัวที่สองแก้ไขถ้าโดเมนย่อย www ถูกละไว้. ฉันยังเอาวงเล็บออกในรูปแบบของคุณ (. *) เนื่องจากคุณไม่ได้ จับ เพื่อทดแทน.

บล็อกกฎสองชุดนี้สามารถรวมเข้าด้วยกันหากต้องการ

  RewriteCond% {HTTPS} ปิด [OR]
RewriteCond% {HTTP_HOST}! www \. RewriteRule. * https: // www. ตัวอย่าง. com% {REQUEST_URI} [R = 301, L]