Saya memiliki 2 domain yang dihosting dengan host yang berbeda. Saya perlu mengalihkan Domain A ke Domain B. Sayangnya saya tidak bisa melakukan 301 redirect dari Host A, tetapi hanya bisa memodifikasi / menambah entri DNS (A-Records dan CNAMEs) di Host A.
Tentunya dimungkinkan untuk mengalihkan www.DomainA.com ke www.DomainB.com hanya dengan menggunakan A-records dan CNAMEs?
Saat ini, entri DNS adalah:
DomainA.com. 3600 IN SOA ns1.HostA.net.
www 3600 IN CNAME www.DomainB.com.
DomainA.com. 3600 IN NS ns1.HostA.net.
DomainA.com. 3600 IN NS ns2.HostA.net.
DomainA.com. 3600 IN NS ns3.HostA.net.
Saya ingin mengalihkan
DomainA.com -> DomainB.com
*.DomainA.com -> *.DomainB.com
Saya sudah mencoba saran dari pos lain ini tetapi tidak berhasil.
Bagaimana saya bisa mencapai ini hanya dengan A-Records dan CNAME? Terima kasih atas saran Anda.
Prembo.
Jawaban:
Jadi Anda tidak melihat pengalihan seperti itu (seperti yang terjadi di tingkat aplikasi, yaitu di Apache / Nginx / di mana pun) melainkan pada resolusi DNS. Host tempat DomainA di-host tidak akan boleh dipukul, berdasarkan uraian Anda karena Anda ingin agar permintaan DNS diselesaikan ke IPs dari DomainB. Kecuali jika saya melewatkan sesuatu dalam permintaan Anda?
Seperti yang Shane tunjukkan, DNS tidak mampu mengalihkan HTTP - itu tugas aplikasi / server web. Anda bisa membuat DomainA dan DomainB memutuskan untuk IP yang sama pada DNS dan semua akan berfungsi. Tetapi jika Anda mencari untuk melakukan ini pada per URL / jalan per-jalan maka ini tidak mungkin - DNS tidak mampu itu - ini adalah DNS-> layanan IP sederhana, apa yang terjadi dengan URL sebenarnya adalah tugas server web.
Setelah komentar di bawah, apa yang akan saya lakukan adalah merujuk semua catatan DNS untuk DomainA ke IP yang sama dengan yang ditunjuk oleh DomainB - dengan cara ini Anda akan mendapatkan permintaan HTTP yang mengenai hostB dan kemudian hanya masalah sederhana:
Ini akan menulis ulang apa pun yang datang ke DomainB ke DomainA yang dapat di-host di server yang sama atau di tempat lain. Saya menghargai bahwa opsi kedua mungkin merupakan overhead dan tidak perlu jika Anda dapat / diizinkan untuk membuat host Virtual Berbasis Nama pada apache.
Saya akan menggunakan 1. - arahkan semua catatan DNS DomainA ke IP yang sama dengan yang ditunjuk oleh DomainB dan buat VirtualHosts Berbasis Nama tertentu di Apache.
sumber
domain B
ke host virtual yang adadomain A
?Seperti yang telah dinyatakan orang lain, tidak mungkin untuk melakukan pengalihan HTTP dengan DNS saja. DNS dan HTTP bekerja bersama untuk mengalihkan pengguna dari satu halaman web ke halaman lainnya.
Anda dapat menggunakan DNS dengan sendirinya untuk membuat domain A menampilkan konten yang sama dengan domain B, tetapi browser web akan menampilkan domain A di URL. Anda harus sangat berhati-hati dengan ini karena cukup buruk dari perspektif SEO. Anda akan mendapat masalah karena "duplikat konten", dan mesin pencari akan menghukum Anda karenanya.
Cara yang benar (dari perspektif UX dan SEO) untuk membuat pekerjaan ini adalah dengan melakukan pengalihan HTTP dari Domain A ke Domain B.
Anda dapat secara manual mengkonfigurasi server web Anda (Apache, Nginx, IIS, dll.) Untuk melakukan pekerjaan ini untuk Anda jika Anda secara teknis mampu. Ada banyak sumber daya yang baik untuk membantu dengan itu di web.
Jika Anda tidak dapat atau tidak ingin mengendalikan infrastruktur, Anda dapat menggunakan layanan pengalihan URL untuk melakukan pekerjaan ini untuk Anda. Saya adalah pendiri salah satu yang disebut EasyRedir , tetapi tentu saja ada yang lain.
sumber
Domain A harus memiliki alamat IP yang sama dengan di domain B. Tidak perlu untuk referensi ke B dalam definisi A. Browser web tidak "mengikuti" CNAME sebagai pengalihan, mereka akan menyimpan nama host yang sama dan menggunakan catatan CNAME sendiri untuk menyelesaikan ke alamat IP.
Jika Anda ingin B muncul di browser ketika A dikunjungi (opsional dan tidak terkait dengan DNS), Anda harus mencocokkan Host HTTP dan mengarahkan permintaan di server Web. dengan Apache, Anda akan menggunakan mod_rewrite untuk melakukannya seperti ini dalam definisi virtual host:
sumber
Tentu saja mungkin untuk mengarahkan ulang, dengan trik berikut:
kosong ....................... A ......................... ... ip-addr-2
www ......................... A ....................... ..... ip-addr-2
Apa yang kita miliki di sini adalah pengalihan, pada dasarnya. URL yang valid akan diselesaikan berdasarkan zona DNS primer DNS yang ada. URL fiktif akan dialihkan ke ip-addr-2. Yang penting adalah bahwa nama entri ini kosong, sehingga akan jatuh ke entri berikutnya dalam catatan dan redirect ke ip-addr-2
sumber
Saya belum mencobanya, tetapi saya pikir Anda bisa melakukan ini:
Ini bukan semua catatan lain dalam file zona DomainA sama sekali. Tidak ada SOA, tidak ada.
Jangan coba ini di domain yang Anda pedulikan berfungsi.
sumber
CNAME
catatan pada domain telanjang / puncak sepertidomain.com
, tetapi Anda dapat pada subdomain sepertiwww.domain.com