สำหรับเว็บไซต์ของฉันแค่ relaunched ฉันต้องเป็น htaccess เปลี่ยนปลายทางจดหมายจับทุกคนที่ไม่ใช่อยู่ subpages ใต้ /blog/
ต้องเล็งไป /blog/
และไม่ใช่ 404(ดังนั้น /blog/old-page/
ก็แค่เปลี่ยนปลายทางจดหมายไป /blog/
). มันสำคัญอย่างไรก็ตามที่ยังคงอยู่ subpages(เช่น /blog/new-page/
)ไม่ redirected. มันก็ดีที่สุดถ้าเรื่องนี้จะต้องอยู่ในรากของ htaccess แฟ้ม(ไม่ได้อยู่ในโฟลเดอร์ย่อย). ฉันรู้สึกเหมือนฉันพยายามทุกอย่างได้แต่ไม่สามารถหาวิธีแก้ปัญหานี้ได้โดยปราศจากการ redirects สำหรับทุกคนเก่าของ subpage(มี>100)!
ฉันหวังว่าจะมีใครสักคนสามารถช่วยได้
ถ้าทั้งหมดของคุณเก่าของหน้าเว็บที่อยู่ url ที่อยู่ของแบบฟอร์ม /blog/<old-page>/
และความเดิมตอนที่แล้วแผนไว้ให้ทางกายภาพไดเรกทอรี(จากไหน DirectoryIndex
เอกสารถูกรับใช้)งั้นคุณสามารถทำบางอย่างเหมือนติดตามการใช้ mod_rewrite อยู่ทางด้านบนของ root .htaccess
แฟ้ม:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog/)[^/]+/$ /$1 [R=301,L]
$1
ใน การแทน ข้อความเป็น backreference เพื่อนคนแรกการจับกลุ่มอยู่ใน RewriteRule
รูปแบบ,ie."บล็อก/". นี่ก็แค่ช่วยซ้ำไปซ้ำมา
นอกเหนือ: แค่ต้องพูดที่เป็นห่วงแสดงอยู่ในความเห็น ด้วยฝากฝังเพื่อซอและทะเบียนผู้ใช้นี่น่าจะแย่กว่าการกำหนด 404 การตอบสนองนั้นอธิบายเรื่องดิเพลิเกนบรีฟและไม่เอามาคืนหน้า(s). การค้นหาเครื่องยนต์มันจะได้เห็นมัน(เป็นหลายคนนึงเปลี่ยนปลายทางจดหมาย)เป็นอ่อน-404 แล้วผู้ใช้มากจะเป็น"สับสน"(แล้ว กระเด้ง)ตอนที่พวกเขาเห็นแตกต่างเนื้อหาเพื่อสิ่งที่พวกเขาเป็นคาดหวัง ไม่มีสิ่งที่มาทดแทนสำหรับ"เก่า"ต้อง"สร้างใหม่"(หนึ่งต้อง-หนึ่ง)301 redirects.