Có cách nào để chuyển hướng tên miền này sang tên miền khác thông qua cài đặt DNS giữ thông tin đường dẫn không?


26

Ví dụ: tên miền của tôi là example.comvà khi ai đó điều hướng đến example.com/sample/page.htm, tôi muốn nó chuyển hướng đến test.com/sample/page.htm.

Tôi biết rằng điều này có thể dễ dàng được thực hiện bằng cách sử dụng .htaccesstệp hoặc trang 404. Tuy nhiên, tôi đang tìm kiếm một giải pháp không yêu cầu tôi phải có nhà cung cấp DNS lưu trữ bất kỳ tệp nào cho tôi.

Tôi chỉ muốn làm điều này với các cài đặt DNS, ví dụ:

  • Bản ghi CNAME
  • Một hồ sơ
  • Chuyển tiếp 301
  • (mọi cài đặt DNS khác tôi đang thiếu)

Có cách nào để làm điều này?


Tôi nghĩ rằng những gì bạn muốn là nhiều hơn một thiết lập ký tự đại diện, nhưng tôi không nghĩ rằng nó có thể được thực hiện tại thời điểm này mà không cần chuyển hướng.
Tim Post

bất cứ ai cũng có thể trả lời rõ ràng và đơn giản về điều này .... :(

@fatty, bạn không hiểu gì?
John Conde

Câu trả lời:


12

Bạn có thể làm cho example.com/test.com giải quyết cùng một máy chủ web (IP) thông qua dns (CNAME nếu bạn muốn) và điều đó sẽ hoạt động.

Nếu bạn đang tìm cách để làm điều này trên cơ sở mỗi con đường hơn không. DNS không biết gì về những thứ như URL. DNS chỉ đơn giản là dịch phần máy chủ của url (example.com) thành địa chỉ IP. Máy chủ web chịu trách nhiệm tìm ra cái gì (hoặc ở đâu) url được cho là để giải quyết. Tôi tin rằng bạn sẽ cần phải làm điều này ở cấp độ máy chủ web (http).


1
Vâng, nếu bạn thiết lập CNAME trên example.com, bạn không phải lưu trữ bất cứ thứ gì cho example.com. Chỉ cần đặt máy chủ test.com để trả lời example.com, sau đó sử dụng mod_rewrite hoặc URL Rewriting trên test.com để phát hiện tên máy chủ example.com và viết lại cho chính nó. Điều này có thể nguy hiểm mặc dù; tốt hơn là có example.com có ​​vhost riêng trên máy chủ test.com, chỉ có các quy tắc chuyển hướng trong đó.
JasonBirch

8

Như đã lưu ý, điều này không thể được thực hiện hoàn toàn với DNS. Tuy nhiên, nếu bạn có DNS ví dụ.com, hãy tham khảo cùng một máy chủ như test.com, việc cấu hình Apache để thực hiện những gì bạn muốn làm là rất đơn giản. Chỉ cần thêm như sau:

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

Điều này sẽ viết lại bất kỳ liên kết đến đến example.com thành một liên kết cho test.com, bảo toàn đường dẫn.

Hơn nữa, nhà cung cấp DNS của bạn không cần lưu trữ bất kỳ tệp nào cho bạn vì điều này chỉ phụ thuộc vào máy chủ web mà bạn đang chạy cho test.com.


Hoặc chỉ cần thêm các chỉ thị ServerAlias ​​vào tệp máy chủ ảo của test.com ..
Michael Clerx

3

Bạn không thể làm điều này thông qua DNS một mình. Chuyển hướng 301 không phải là một điều DNS. Chúng là một thứ máy chủ web.

Những gì bạn có thể làm là trỏ các mục DNS example.com của bạn đến cùng một máy chủ như test.com và thiết lập example.com làm tên miền bí danh cho test.com.


3

Đây là .htaccessquy tắc chính xác mà tôi sử dụng để chuyển hướng tất cả các yêu cầu từ www.mydomain.com đến mydomain.com (vì ngắn hơn là URL chính tắc của tôi):

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

Điều đó đủ dễ dàng để sửa đổi để chuyển hướng từ foo.comđến foobar.com, trong khi duy trì yêu cầu, khách hàng chỉ cần chuyển hướng 301 đến tên miền thích hợp.

Tuy nhiên, bạn không thể làm điều này 'chỉ' với DNS, như những người khác đã nói, các máy chủ DNS chỉ giải quyết FQDN thành địa chỉ IP.


Tôi đã sử dụng cái này, nhưng tôi phải xóa dấu gạch chéo cuối cùng trong dòng thứ hai của bạn ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) hoặc nó sẽ thêm hai dấu gạch chéo vào URL được chuyển hướng. Còn ai có kinh nghiệm không?
julien_c
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.