Score:0

เปลี่ยนเส้นทางทุกหน้าไปที่ non www และหน้าหนึ่งไปที่ www

ธง cn

ฉันต้องการเปลี่ยนเส้นทางหน้าภายในทั้งหมดของฉัน (เช่น: example.com/about) เป็นเวอร์ชันที่ไม่ใช่ www แต่ฉันต้องการหน้าแรกของฉัน (https://example.com) เพื่อเปลี่ยนเส้นทางไปยังเวอร์ชัน www (https://www.example.com).

ฉันค้นหาบทความมากมายบนอินเทอร์เน็ต แต่ไม่สามารถใช้งานได้

หากตั้งค่าทั้งสองกฎ หน้าภายในจะถูกเปลี่ยนเส้นทางได้ตามปกติ แต่หน้าแรกติดอยู่ในลูป

ฉันไม่รู้วิธีเขียนโค้ด ดังนั้นโปรดขอร้องหากคุณสามารถเขียนโค้ดที่ฉันควรวางในของฉัน .htaccess ไฟล์

ขณะนี้ ฉันได้กำหนดให้ทุกหน้าเปลี่ยนเส้นทางไปยังเวอร์ชันที่ไม่ใช่ www (แม้แต่หน้าแรก) ด้วยรหัสด้านล่าง:

<IfModule mod_rewrite.c>
RewriteEngine เปิดอยู่
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
</หากโมดูล>
# เริ่มต้น Sitepad
<IfModule mod_rewrite.c>
RewriteEngine เปิดอยู่
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
กฎการเขียนซ้ำ index.php [L]
</หากโมดูล>
# END แผ่นรองไซต์
Score:0
ธง kz

ฉันค้นหาบทความมากมายบนอินเทอร์เน็ต แต่ไม่สามารถใช้งานได้

อาจเป็นเพราะนี่เป็นข้อกำหนดที่แปลกประหลาด ฉันจะแปลกใจถ้าคุณจะพบรหัสใด ๆ ที่คุณสามารถคัดลอก / วางที่ทำสิ่งนี้ได้

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

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

regex .* ใน เขียนกฎใหม่ ลวดลาย การแข่งขัน ทุกอย่าง. โดยเฉพาะอย่างยิ่ง มันตรงกับ 0 หรือมากกว่าของอักขระใด ๆ ตามที่แสดงโดย * ปริมาณ ซึ่งตรงกับเส้นทาง URL ที่ว่างเปล่า (เช่น "หน้าแรก") และทุกเส้นทาง URL ที่ไม่ว่างเปล่า (เช่น อย่างอื่นทั้งหมด)

คุณต้องแก้ไข regex ด้านบนเพื่อให้ตรงกับเส้นทาง URL ที่ไม่ว่างเปล่า (เช่น ทุกอย่างยกเว้นหน้าแรก) และสร้างกฎอีกข้อ (ในทิศทางอื่น) ที่ตรงกับเส้นทาง URL ที่ว่างเปล่าเท่านั้น

(สิ่งนี้ใช้ความจริงที่ว่า mod_dir กำลังให้บริการ index.php สำหรับการร้องขอไปยังหน้าแรก ไม่ใช่คำสั่ง mod_rewrite ที่ตามมา)

หากต้องการจับคู่ 1 รายการขึ้นไป (เช่น เส้นทาง URL ที่ไม่ว่างเปล่า) คุณสามารถใช้ + (บวก) ปริมาณ แทน * (ดาว/ดอกจัน).

ตัวอย่างเช่น:

# เปลี่ยนเส้นทางทุกอย่างยกเว้นหน้าแรก (จาก www เป็น non-www)
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.+)$ https://example.com/$1 [L,R=301]

# เปลี่ยนเส้นทางหน้าแรกเท่านั้น (จากไม่มี www เป็น www)
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^$ https://www.example.com/ [L,R=301]

คุณจะต้องล้างแคชของเบราว์เซอร์ก่อนทำการทดสอบ เนื่องจากการเปลี่ยนเส้นทาง 301 (ถาวร) ก่อนหน้านี้ที่เปลี่ยนเส้นทางหน้าแรกจาก www เป็นไม่มี www จะถูกแคชโดยเบราว์เซอร์

ทดสอบครั้งแรกกับการเปลี่ยนเส้นทาง 302 (ชั่วคราว) เพื่อหลีกเลี่ยงปัญหาการแคชที่อาจเกิดขึ้น

โพสต์คำตอบ

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