Apakah ada cara untuk mengarahkan ulang satu domain ke domain lain melalui pengaturan DNS menjaga informasi jalur?

26

Misalnya, domain saya adalah example.comdan ketika seseorang menavigasi ke example.com/sample/page.htm, saya ingin mengarahkannya ke test.com/sample/page.htm.

Saya tahu bahwa ini mungkin dapat dengan mudah dilakukan menggunakan .htaccessfile atau halaman 404. Namun, saya mencari solusi yang tidak mengharuskan saya meminta penyedia DNS saya menyimpan file apa pun untuk saya.

Saya ingin melakukan ini hanya dengan pengaturan DNS, misalnya:

  • Catatan CNAME
  • Sebuah catatan
  • Penerusan 301
  • (pengaturan DNS lainnya yang saya lewatkan)

Apakah ada cara untuk melakukan ini?

Masuk akal
sumber
Saya pikir apa yang Anda inginkan lebih dari pengaturan wildcard, tetapi saya tidak berpikir itu dapat diimplementasikan pada saat ini tanpa arahan ulang.
Tim Post
Adakah yang bisa memberikan jawaban yang jelas dan sederhana tentang ini .... :(
@ lemak, apa yang tidak kamu mengerti?
John Conde

Jawaban:

12

Anda dapat membuat example.com/test.com menyelesaikan ke server web yang sama (IP) melalui dns (CNAME jika Anda mau) dan itu akan berhasil.

Jika Anda ingin melakukan ini berdasarkan per-jalur daripada tidak. DNS tidak mengetahui hal-hal seperti URL. DNS hanya menerjemahkan bagian host dari url (example.com) ke alamat IP. Server web bertugas mencari tahu apa (atau di mana) url yang seharusnya diselesaikan. Saya percaya Anda perlu melakukan ini di tingkat server web (http).

Thomas
sumber
1
Ya, jika Anda menyiapkan CNAME di example.com, Anda tidak perlu meng-host apa pun untuk example.com. Cukup atur host test.com untuk menanggapi example.com, lalu gunakan mod_rewrite atau URL Penulisan Ulang di test.com untuk mendeteksi nama host example.com dan tulis ulang untuk dirinya sendiri. Ini bisa berbahaya; lebih baik memiliki example.com memiliki vhost sendiri di server test.com, dengan hanya aturan pengalihan di dalamnya.
JasonBirch
8

Seperti yang telah dicatat, ini tidak dapat dilakukan sepenuhnya dengan DNS. Namun, jika Anda memiliki DNS untuk example.com, rujuk ke server yang sama dengan test.com, sangat mudah untuk mengkonfigurasi Apache untuk mencapai apa yang ingin Anda lakukan. Cukup tambahkan yang berikut ini:

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

Ini akan menulis ulang semua tautan masuk ke example.com ke tautan untuk test.com, menjaga jalurnya.

Selain itu, penyedia DNS Anda tidak perlu meng-host file apa pun untuk Anda karena ini hanya bergantung pada server web yang sudah Anda jalankan untuk test.com.

Keris
sumber
Atau cukup tambahkan arahan ServerAlias ​​ke file host virtual
test.com
3

Anda tidak dapat melakukan ini melalui DNS saja. Pengalihan 301 bukan hal DNS. Mereka adalah hal server web.

Apa yang dapat Anda lakukan adalah mengarahkan entri DNS example.com Anda ke server yang sama dengan test.com, dan mengatur example.com sebagai domain alias ke test.com.

intlect
sumber
3

Berikut adalah .htaccessaturan persis yang saya gunakan untuk mengalihkan semua permintaan dari www.mydomain.com ke mydomain.com (karena yang lebih pendek adalah URL kanonik saya):

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

Itu cukup mudah untuk dimodifikasi untuk mengalihkan dari foo.comke foobar.com, sambil mempertahankan permintaan, klien hanya mendapatkan 301 redirect ke domain yang sesuai.

Namun Anda tidak dapat melakukan ini 'hanya' dengan DNS, seperti yang orang lain katakan, server DNS hanya menyelesaikan FQDN ke alamat IP.

Pos Tim
sumber
Saya menggunakan ini, tetapi saya harus menghapus garis miring terakhir pada baris kedua Anda ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) atau akan menambahkan dua garis miring ke URL yang dialihkan. Adakah yang mengalami hal itu?
julien_c