Score:2

เมื่อเปลี่ยนเป็น WWW URL ทั้งหมดที่แสดง index.php?page= จะลบ index.php?page= ได้อย่างไร

ธง us

เมื่อเร็ว ๆ นี้ฉันจัดการ URL ทั้งหมดจากที่ไม่ใช่ www ไปยัง www เนื่องจากฉันมีข้อผิดพลาด SEO เกี่ยวกับเว็บไซต์ที่ซ้ำกัน

เมื่อฉันใช้กฎ www แล้ว URL ทั้งหมดของฉันจะเริ่มแสดง index.php?page= ซึ่งดูไม่สวยงามนัก

นี่คือปัจจุบันของฉัน .htaccess กฎ:


RewriteEngine เปิดอยู่

ฐานการเขียนซ้ำ /

RewriteRule ^([-a-zA-Z0-9]+)$ index.php?page=$1

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

RewriteEngine เปิดอยู่
ฐานการเขียนซ้ำ /

# ลบ index.php?page=$1
RewriteCond %{THE_REQUEST} ^.*/index.php?page=$1
RewriteRule ^(.*)index.php?page=$1$ https://www.example.com/$1 [R=301,L]
RewriteRule ^(.*)index$ https://www.example.com/$1 [R=301,L]

ฉันได้ลองใช้รหัสด้านบนและไม่ได้ผล มีอะไรที่ฉันขาดหายไป?

Score:0
ธง kz

กฎของคุณอยู่ในลำดับที่ไม่ถูกต้อง การเปลี่ยนเส้นทางที่ไม่ใช่ www ไปยัง www ภายนอกของคุณต้องอยู่ก่อนการเขียนใหม่ภายในทันทีหลังจากครั้งแรก RewriteBase คำสั่ง

ตามกฎทั่วไป "การเปลี่ยนเส้นทาง" ควรมาก่อน "เขียนใหม่" เสมอ

อัปเดต: คุณจะต้องแน่ใจว่าคุณได้ล้างแคชของเบราว์เซอร์ (และแคชตัวกลางใดๆ) เนื่องจากการเปลี่ยนเส้นทาง 301 (ถาวร) ที่ผิดพลาดจะถูกแคชโดยเบราว์เซอร์อย่างแน่นอน

โดยสรุป กฎของคุณควรมีลักษณะดังนี้:

RewriteEngine เปิดอยู่

ฐานการเขียนซ้ำ /

# เปลี่ยนเส้นทางที่ไม่ใช่ www เป็น www
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

# เขียนใหม่ภายในสำหรับหน้า
RewriteRule ^([-a-zA-Z0-9]+)$ index.php?page=$1 [L]

จุดตามตัวอักษรใดๆ ใน regex จะต้องเป็นเครื่องหมายแบ็กสแลช และคุณควรรวม แอล ตั้งค่าสถานะในการเขียนใหม่ คุณควรเพิ่มกฎเพิ่มเติมในภายหลัง

(หมายเหตุ: ฉันคิดว่าคุณกำลังเชื่อมโยงไปยัง URL ของแบบฟอร์ม /นี่คือหน้าของฉัน และไม่ /index.php?page=this-is-my-page - มิฉะนั้น คุณต้องเปลี่ยนลิงค์ภายในของคุณ)

us flag
ฉันเพิ่งจัดระเบียบคำสั่งซื้อ แต่ลิงก์ของฉันยังคงแสดงเป็น:https://www.culture-insider.com/?page=ExperienceMorocco แทนที่จะเป็น https://www.culture-insider.com/ExperienceMorocco
kz flag
@SihamLahmine คุณจะต้องแน่ใจว่าคุณได้ล้างแคชของเบราว์เซอร์และแคชตัวกลางใดๆ เนื่องจากการเปลี่ยนเส้นทาง 301 (ถาวร) ที่ผิดพลาดจะถูกแคชไว้ คุณควรรวมแฟล็ก `L` ไว้บนการเขียนใหม่ด้วยเพื่อการวัดผลที่ดี ฉันคิดว่าคุณได้ลบกฎสองสามข้อสุดท้ายด้วยหรือไม่
kz flag
@SihamLahmine ฉันได้อัปเดตคำตอบเพื่อชี้แจงว่าคำสั่งควรมีลักษณะอย่างไร นอกจากนี้ ฉันคิดว่าคุณกำลังเชื่อมโยงไปยัง URL ของรูปแบบ `/this-is-my-page` และไม่ใช่ `/index.php?page=this-is-my-page`
us flag
ขอบคุณมาก มันชัดเจนและง่ายต่อการทดสอบ ฉันขอถามหน่อยได้ไหม ฉันจะรู้ได้อย่างไรว่า URL ของฉันเชื่อมโยงกับการตอบคำถามอย่างถูกต้องจากที่ใด
us flag
MrWhite ฉันคิดว่าฉันได้แก้ไขแล้ว ขอบคุณ ฉันจะรอจนถึงพรุ่งนี้เพื่อให้แน่ใจว่า - ขอบคุณมากสำหรับความช่วยเหลือของคุณ!
kz flag
@SihamLahmine "ฉันจะรู้ได้อย่างไรว่า URL ของฉันเชื่อมโยงกับที่ใด" - ฉันหมายถึงจุดยึด HTML ในซอร์สโค้ดของคุณ - _ลิงก์ภายในของคุณ_ เช่น. จุดยึดของคุณควรเป็นแบบ `` และไม่ใช่ ``.
kz flag
@SihamLahmine "ฉันคิดว่าฉันได้แก้ไขแล้วขอบคุณคุณ" - ยินดีต้อนรับ หากสิ่งนี้ช่วยตอบคำถามของคุณ โปรดทำเครื่องหมายว่ายอมรับแล้ว (เครื่องหมายถูกใต้ลูกศรโหวต ถัดจากคำตอบของฉัน) - เพื่อช่วยผู้อ่านคนอื่นๆ และนำคำถามออกจากคิวคำถามที่ยังไม่มีคำตอบ คุณยังสามารถโหวตคำตอบที่คุณเห็นว่ามีประโยชน์ได้อีกด้วย ขอบคุณชื่นชมมาก :)

โพสต์คำตอบ

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