มีวิธีใดที่จะเปลี่ยนเส้นทางโดเมนหนึ่งไปยังอีกโดเมนหนึ่งผ่านการตั้งค่า DNS เพื่อเก็บข้อมูลเส้นทาง


26

ยกตัวอย่างเช่นโดเมนของฉันเป็นexample.comและเมื่อมีคนนำทางไปผมอยากให้มันเปลี่ยนเส้นทางไปยังexample.com/sample/page.htmtest.com/sample/page.htm

ฉันรู้ว่าสิ่งนี้สามารถทำได้อย่างง่ายดายโดยใช้.htaccessไฟล์หรือหน้า 404 อย่างไรก็ตามฉันกำลังมองหาโซลูชันที่ไม่ต้องการให้ฉันให้บริการโฮสต์ DNS ของฉันกับไฟล์ใด ๆ สำหรับฉัน

ฉันต้องการทำสิ่งนี้ด้วยการตั้งค่า DNS เท่านั้นเช่น:

  • ระเบียน CNAME
  • บันทึก
  • 301 การส่งต่อ
  • (การตั้งค่า DNS อื่น ๆ ที่ฉันหายไป)

มีวิธีการทำเช่นนี้?


ฉันคิดว่าสิ่งที่คุณต้องการคือการตั้งค่าไวด์การ์ดมากขึ้น แต่ฉันไม่คิดว่าจะสามารถใช้งานได้ในตอนนี้หากไม่มีการเปลี่ยนเส้นทาง
Tim Post

ทุกคนสามารถให้คำตอบที่ชัดเจนและเรียบง่ายเกี่ยวกับเรื่องนี้ .... :(

@ Fatty คุณไม่เข้าใจอะไร
John Conde

คำตอบ:


12

คุณสามารถทำการ example.com/test.com แก้ไขเว็บเซิร์ฟเวอร์เดียวกัน (IP) ผ่าน dns (CNAME หากคุณต้องการ) และสิ่งนี้จะใช้ได้

หากคุณกำลังมองหาวิธีการนี้ในแบบต่อเส้นทางมากกว่าไม่ DNS ไม่รู้สิ่งต่าง ๆ เช่น URL DNS กำลังแปลส่วนโฮสต์ของ URL (example.com) เป็นที่อยู่ IP เว็บเซิร์ฟเวอร์รับผิดชอบการหาว่า URL ควรแก้ไขปัญหาอะไร (หรือที่ไหน) ฉันเชื่อว่าคุณจะต้องทำสิ่งนี้ในระดับเว็บเซิร์ฟเวอร์ (http)


1
ใช่ถ้าคุณตั้งค่า CNAME บน example.com คุณไม่ต้องโฮสต์อะไรกับ example.com เพียงแค่ตั้งค่าโฮสต์ test.com เพื่อตอบสนอง example.com จากนั้นใช้ mod_rewrite หรือ URL Rewriting บน test.com เพื่อตรวจหาชื่อโฮสต์ของ example.com และเขียนทับมันเอง สิ่งนี้อาจเป็นอันตรายได้ ดีกว่าที่จะมี example.com มี vhost ของตัวเองบนเซิร์ฟเวอร์ test.com โดยมีกฎการเปลี่ยนเส้นทางเพียงอย่างเดียว
JasonBirch

8

ตามที่ได้รับการจดบันทึกสิ่งนี้ไม่สามารถทำได้อย่างสมบูรณ์กับ DNS อย่างไรก็ตามหากคุณมี DNS สำหรับ example.com อ้างถึงเซิร์ฟเวอร์เดียวกันกับ test.com การกำหนดค่า Apache ให้ทำสิ่งที่คุณต้องการทำได้ง่ายมาก เพียงเพิ่มรายการต่อไปนี้:

<VirtualHost *:80>
  ServerName example.com
  Redirect permanent / http://test.com/
</VirtualHost>

การดำเนินการนี้จะเขียนลิงก์ขาเข้าใด ๆ ไปยัง example.com ไปยังลิงก์สำหรับ test.com เพื่อรักษาเส้นทาง

นอกจากนี้ผู้ให้บริการ DNS ของคุณไม่จำเป็นต้องโฮสต์ไฟล์ใด ๆ ให้กับคุณเนื่องจากจะใช้เฉพาะเว็บเซิร์ฟเวอร์ที่คุณใช้งานอยู่สำหรับ test.com เท่านั้น


หรือเพียงแค่เพิ่มคำสั่ง ServerAlias ​​ไปยังไฟล์โฮสต์เสมือนของ test.com ..
Michael Clerx

3

คุณไม่สามารถทำได้ผ่าน DNS เพียงอย่างเดียว การเปลี่ยนเส้นทาง 301 ไม่ใช่สิ่ง DNS พวกเขาเป็นสิ่งที่เว็บเซิร์ฟเวอร์

สิ่งที่คุณสามารถทำได้คือชี้รายการ DNS ของคุณ example.com ไปยังเซิร์ฟเวอร์เดียวกันกับ test.com และตั้งค่า example.com เป็นโดเมนนามแฝงไปยัง test.com


3

นี่คือ.htaccessกฎที่แน่นอนที่ฉันใช้เพื่อเปลี่ยนเส้นทางคำขอทั้งหมดจาก www.mydomain.com ไปยัง mydomain.com (เนื่องจาก URL ที่สั้นกว่าคือบัญญัติของฉัน):

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

นั่นง่ายพอที่จะแก้ไขเพื่อเปลี่ยนเส้นทางจากfoo.comไปfoobar.comยังในขณะที่รักษาคำขอไคลเอนต์เพิ่งได้รับ 301 เปลี่ยนเส้นทางไปยังโดเมนที่เหมาะสม

อย่างไรก็ตามคุณไม่สามารถทำสิ่งนี้ 'ด้วย' กับ DNS อย่างที่คนอื่นบอกว่าเซิร์ฟเวอร์ DNS เพิ่งแก้ไขปัญหาของ FQDN เป็นที่อยู่ IP


ฉันใช้สิ่งนี้ แต่ฉันต้องลบเครื่องหมายทับสุดท้ายในบรรทัดที่สองของคุณ ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) หรืออาจเพิ่มเครื่องหมายทับสองอันลงใน URL ที่เปลี่ยนเส้นทาง มีใครอีกไหมที่เคยเจอ?
julien_c
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.