Sử dụng DNS để chuyển hướng đến một URL khác với đường dẫn [đã đóng]


121

Tôi đang cố gắng chuyển hướng một tên miền sang tên khác thông qua DNS.

Tôi biết rằng sử dụng IN CNAME, điều đó rõ ràng.

www.proof.com IN CNAME www.proof-two.com.

Những gì tôi cần là một chuyển hướng với một con đường. Khi ai đó gõ www.proof.com, nó sẽ đưa họ đếnwww.proof-two.com/path/index.htm

Tôi biết nó có thể được thực hiện bằng các cơ sở Máy chủ Web, nhưng tôi cần chuyển hướng DNS.

Điều này có thể không?


Nếu bạn đang sử dụng tên miền google, bạn có thể sử dụng "Chuyển tiếp tên miền" ở menu bên trái -> Trang web.
John_J

Câu trả lời:


137

Không, những gì bạn yêu cầu là không thể. DNS là hệ thống phân giải tên và không biết gì về HTTP.


93

nếu bạn sử dụng AWS, một chuyển hướng như

mail.foo.com --> mail.google.com/a/foo.com

có thể được thiết lập như sau:

  1. trong s3, tạo một thùng rỗng "mail.foo.com"
  2. trong Thuộc tính -> Lưu trữ trang web tĩnh, đặt "chuyển hướng tất cả các yêu cầu đến: mail.google.com/a/foo.com"
  3. trong tuyến53, tạo bản ghi A "mail.foo.com"
  4. bật "bí danh" và đặt mục tiêu bí danh vào nhóm "mail.foo.com"

không phải là một giải pháp DNS thuần túy, nhưng nó hoạt động;)

Nhưng lưu ý, chuyển hướng bỏ qua tất cả các tham số URL, ví dụ: ...? Param1 = value1 & param2 = value2


3
Đây là một câu trả lời tuyệt vời và rất hữu ích cho bất cứ ai sử dụng AWS. Cảm ơn bạn! Cách giải quyết ngọt ngào
Ken

6
Điều quan trọng cần lưu ý: Xô phải được đặt tên để khớp với tên máy chủ được chuyển hướng đến nó. Xem serverfault.com/a/584714/105720
Jordan Feldstein

1
Điều này hoạt động như một chuyển hướng đến một thư mục, nhưng không phải đến một trang cụ thể. Nếu bạn chuyển hướng tất cả các yêu cầu tới "www.example.com/foo/bar/baz.html" AWS sẽ "bổ sung" một cách hữu ích "/" vào URL, biến nó thành "www.example.com/foo/bar/baz .html / "và trả về lỗi 404.
Bá tước Ruby

34

Tôi nhận ra đây là một chủ đề cũ nhưng FWIW, trong trường hợp người khác đang tìm cách để làm điều này.

Mặc dù dns không hiểu phần đường dẫn của url, nhưng nó sẽ hiểu tên miền phụ, vì vậy thay vì:

www.proof.com TẠI CNAME www.proof-two.com/path/index.htm

Bạn đã có thể sử dụng:

www.proof.com IN CNAME Proof.proof-two.com

sau đó đi đến bất cứ nơi nào bạn lưu trữ Proof-two.com và đặt nó vào điểm Proof.proof-two.com thành www.proof-two.com/path/index.htm.

~ luôn có nhiều hơn một cách để lột da một con mèo


2
Điều này nghe có vẻ như một công trình vô dụng, thay vì làm bằng chứng.proof-two.com trỏ đến www.proof-two.com/path/index.htmlm, Bạn cũng có thể làm cho www.roof.com chỉ vào đó, không cần bản ghi DNS bổ sung.
Michiel

12
@Michiel Nghe có vẻ như một công trình vô dụng nếu bạn dễ dàng truy cập vào proof-two.comcác máy chủ web. Đôi khi các công ty lớn (và quan liêu) làm cho mọi thứ phức tạp hơn nhiều so với nó có thể.
cregox

1
"sau đó đi đến bất cứ nơi nào bạn lưu trữ Proof-two.com và đặt nó vào điểm Proof.proof-two.com thành www.proof-two.com/path/index.htm" Làm thế nào để làm điều này?
dùng2060451

17

Tôi có một dự án cá nhân có thể giúp bạn giải quyết vấn đề này. Đó là một giải pháp chuyển hướng nguồn mở cho phép bạn chuyển hướng tên miền của mình chỉ cần thay đổi cài đặt DNS. Liên kết của dự án: https://redirect.center/ .

Để chuyển hướng www.proof.com sang www.proof-two.com giữ các tham số URL, chỉ cần đặt mục nhập DNS DNS của bạn trên Proof.com:

www.proof.com TẠI CNAME www.proof-two.com.opts-uri.redirect.center.


Câu hỏi là về việc chuyển hướng đến một url đường dẫn đầy đủ, không chỉ là một tên miền.
Tony Chiboucas

2
Đó vẫn chưa phải là một con đường đầy đủ
Tony Chiboucas 10/11/2015

2
Một đường dẫn có thể được hỗ trợ thông qua ".opts-slash" của dịch vụ. chức năng. Chuyển hướng công việc.my-domain.com sang my-domain.com/jobs Định cấu hình Vùng DNS của bạn như sau: Máy chủ Bản ghi: công việc Loại: CNAME Tới: www.my-domain.com.opts-slash.jobs.redirect.center
David Turner

1
Điều này thực sự thú vị và đơn giản nếu nhà đăng ký của bạn không cung cấp chuyển hướng - tuyệt vời!
Luca Steeb

1
Đây là hoàn hảo! Tôi đã giả sử một cái gì đó như thế này tồn tại nhưng không thể tìm thấy nó (họ cần phải làm việc trên SEO của họ tôi đoán).
Matt Dodge

11

Thực sự dễ dàng với redirect.center

Nếu bạn muốn tạo một CNAME như:

www.proof.com TẠI CNAME www.proof-two.com/path/index.htm

sử dụng redirect.center CNAME của bạn trông như chế độ chính tắc như:

www.proof.com TRONG CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htmlm.redirect.center.

Bây giờ nếu bạn muốn chuyển hướng đến trang web https, bạn có thể thêm tùy chọn này:

www.proof.com TRONG CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htmlm.opts-https.redirect.center.

Bây giờ bạn có thể tạo một CNAME với chế độ chính tắc với dấu gạch chéo trong trang định mệnh của bạn.


Tôi đã thử điều này, nhưng nó không hoạt động. Tất cả những gì nó làm là chuyển hướng người dùng đến trang web redirect.center.
Renan

Bạn có thể sao chép đăng ký CNAME của bạn? Bạn có thể sao chép trang web chuyển hướng của bạn quá?
Alvaro Aguilar

1
@Renan Đảm bảo tên miền nguồn có trong DNS và có thể được tìm kiếm bởi máy chủ redirect.center; đồng thời điều hướng đến target-domain.com.redirect.center trong trình duyệt sẽ không hoạt động. Xem giải thích: github.com/udleinati/redirect.center/issues/ từ
cá đỏ

11

Biên tập

Có vẻ như đó là nhà cung cấp của tôi (OVH), người cho phép loại chuyển hướng đó trong cơ sở hạ tầng của nó.

Xem: https://docs.ovh.com/gb/en/domains/redirect-domain-name/

Tôi đang giữ câu trả lời dưới đây để lưu trữ, nhưng nó không cung cấp bất kỳ thông tin có ý nghĩa nào.

Câu trả lời gốc

Tôi đã làm điều đó bằng cách sử dụng một bản ghi TXT.

Để chuyển hướng foo.bar.comđến foo2.bar.com/path, chỉ cần thêm foo IN TXT "1|foo2.bar.com/path"vào bar.comvùng DNS của bạn .

Nó cũng giữ các đường dẫn url và các tham số. Vì vậy, nếu bạn cố gắng truy cập foo.bar.com/hello?foo=bar, bạn sẽ được chuyển hướng đến foo2.bar.com/path/hello?foo=bar.


6
Bạn có thể thịt này ra một chút nữa? Bạn có bất kỳ tài liệu tham khảo cho cách sử dụng bản ghi TXT?
Giô

Điều này cũng sẽ giữ các tham số url?
andreas

1
Sau khi điều tra, có vẻ như OVH làm điều đó cho tôi. Xem: ovh.com/fr/g1339.redirection-nom-de-domaine (fr). Tôi sẽ cập nhật câu trả lời của tôi.
Gabriel

10

Để trả lời câu hỏi ban đầu, không, những gì bạn muốn là không thể chỉ sử dụng DNS (như mọi người đã nêu). Ngoài mọi thứ đã được đề cập, một tùy chọn khác là sử dụng dịch vụ chuyển hướng URL. Các loại dịch vụ này có thể cho phép bạn định cấu hình nhiều loại chuyển hướng URL khác nhau tùy theo nhu cầu của bạn. Ví dụ:

  1. Chuyển tiếp một apex tên miền đến một www. tên miền phụ hoặc ngược lại
  2. Chuyển tiếp bộ sưu tập tên miền đến một đích (hữu ích để chuyển tiếp lỗi chính tả tên miền, tên công ty cũ, v.v.)
  3. Chuyển tiếp tên miền cụ thể đến các trang được liên kết sâu (như những gì OP muốn)

Một dịch vụ thực hiện điều này là EasyRedir . Tiết lộ đầy đủ: Tôi đã phát triển EasyRedir. Chắc chắn có những lựa chọn khác ngoài đó, vì vậy tôi khuyến khích bạn hãy nhìn xung quanh.


5

DNS sẽ không chuyển hướng phần đường dẫn của URL, do đó không thể thực hiện được.

Thêm

www.proof.com IN CNAME www.proof-two.com

sẽ truy cập trực tiếp vào www.proof.com đến www.proof-two.com, nơi bạn sẽ cần sử dụng cấu hình máy chủ web để hướng người dùng đến trang thích hợp.


4

Giải pháp của tôi cho vấn đề này khá đơn giản và dễ hiểu. Tất cả bạn cần là một máy chủ IIS chạy bên trong miền.

Thiết lập CNAME trong DNS để trỏ đến máy chủ IIS, sử dụng tên máy chủ trong IIS để giải quyết một số trang web trên một máy chủ IIS. Tôi đang sử dụng cùng một máy chủ IIS để tạo ra một vài tên miền phụ cho các trang web bên ngoài.

Sau đó, trong thiết lập IIS thiết lập chuyển hướng cho trang web đó để đi đến trang web / đường dẫn ngoại vi của bạn, trong trường hợp của tôi, đó là danh mục được lưu trữ của chúng tôi mà tôi muốn catalog.ourdomain.com đi đến. Từ đây tất cả các tinh chỉnh được thực hiện trong IIS. Hãy chắc chắn kích hoạt xác thực ẩn danh để lưu lượng truy cập sẽ không bị chặn.


3

Tôi sẽ cho rằng bạn có kịch bản này: Bạn có một máy chủ web duy nhất lưu trữ các trang web khác nhau, mỗi trang web được cho là được trình bày bởi một tên miền riêng biệt:

vì vậy, page1.html phải được phục vụ bởi www.customer1.com , v.v.

  1. tạo một tên miền phụ bên trong máy chủ dns example.com (máy chủ web của bạn):

    khách hàng1.example.com

  2. trong cài đặt máy chủ ảo apache của bạn, ánh xạ tên miền phụ vào thư mục chứa trang web cho khách hàng số 1 của bạn, như thế này:

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> xin lưu ý giá trị cho "ServerAlias", điều quan trọng là bước tiếp theo-

tại thời điểm này, bạn sẽ có thể điều hướng đến trang web của khách hàng1 bằng cách duyệt đến:

khách hàng1.example.com

  1. Trong cài đặt DNS cho customer1.com, bạn phải tạo một bản ghi CNAME:

    CNAME = www VỊ TRÍ = customer1.example.com

Bây giờ, bạn đã được kích hoạt để sử dụng: www.customer1.com.


3

Một công việc liên quan đã kết luận tất cả những điều dưới đây:

Vấn đề:

http://a.com/p1/p2.html nên truy cập http://B.com/p1/p2.html
ngay hôm nay, nhưng sau đó khi được định cấu hình thủ công / tự động, cùng
http://a.com/p1 /p2.html nên đi đến http://C.com/p1/p2.html

Đáp án:

DNS - chuyển đổi tên thành địa chỉ IP

Mặc dù nó có thể thực hiện nhiều chuyển hướng, nhưng đầu ra luôn là địa chỉ IP DNS không hiểu đường dẫn hoặc phần giao thức của URL, chỉ hiểu phần tên miền, nghĩa là chỉ a.com được chuyển đổi thành địa chỉ IP, vì vậy khi bạn nhấn http: //a.com/p1/p2.html có thể được chuyển đổi thành http://152.132.121.11/p1/p2.html nếu bạn định cấu hình sai trong DNS, sau đó bạn sẽ nhận được 152.132.121.11 (không phải http: //152.132. 121.11 / p1 / p2.html ), do đó bạn sẽ gặp một số lỗi 400 giây (400, 403, v.v.)

Chuyển hướng - đây là http://a.com/p1/p2.html có thể được chuyển đổi thành http://b.com/p1/p2.html

Tất cả các phương thức như GET, POST đều có thể hoạt động, nếu có bất kỳ tiêu đề và phần thân nào, nhưng có một máy chủ web có liên quan, đó có thể là điểm thất bại, vì vậy khả năng mở rộng và tính sẵn sàng sẽ là chìa khóa

Nếu bạn đang ở trên AWS , Tuyến 53 -> API Gateway có thể mặc dù các miền tùy chỉnh, sử dụng bên trong Cloud front

Có thể với Trình quản lý chứng chỉ Amazon, tên miền tùy chỉnh AWS Gateway & Route53, lưu ý hạn chế us-East-1 trên ACM

Mong rằng sẽ giúp được ai đó


2

Trong khi hầu như mọi người đã tuyên bố - không thể chỉ sử dụng DNS. Như một giải pháp thay thế, tôi khuyên bạn nên thử NGINX ( http://nginx.org/en/docs/http/request_ Processing.html ).

TL; DR - Trong NGINX, bạn có thể tạo nhiều máy chủ ảo có thể chuyển hướng yêu cầu của bạn dựa trên tên máy chủ.

Ví dụ. http://first.my-server.com chuyển hướng đến vị trí A và http://second.my-server.com chuyển hướng đến vị trí B, trong khi cả hai chia sẻ một máy chủ vật lý.


0

Bạn có thể sử dụng mod viết lại htaccess, viết lại cho thư mục con nếu người dùng đang yêu cầu một tên miền cụ thể chứ không phải tên miền khác.


-1

Tất nhiên có thể chuyển hướng, với thủ thuật sau:

Tạo một vùng chính tiêu chuẩn mới Đặt tên giống như URL hư cấu mà bạn muốn chuyển hướng đến Đảm bảo rằng tên giả tưởng này khác với bất kỳ tên DNS AD nào Tạo bản ghi với các mục sau:

trống ....................... A ......................... ... ip-addr-2

www ......................... A ....................... ..... ip-addr-2

Những gì chúng ta có ở đây là chuyển hướng, về cơ bản. Một URL hợp lệ sẽ phân giải dựa trên vùng DNS chính DNS hiện có. Một URL giả tưởng sẽ được chuyển hướng đến ip-addr-2. Điều quan trọng là tên của mục này trống, vì vậy nó sẽ rơi xuống mục tiếp theo trong bản ghi và chuyển hướng đến ip-addr-2


-4

Mọi người đã nói điều này và tôi chỉ muốn cung cấp cho bạn một tùy chọn khác cho một dịch vụ có thể giúp bạn. www.301redirect.it là một dịch vụ miễn phí có thể chuyển hướng tên miền của bạn (bằng ký tự đại diện) đến bất kỳ url đích nào.

Tôi cũng muốn thêm một tiết lộ: Tôi là nhà phát triển đằng sau dịch vụ này và có một tùy chọn khác ngoài đó.

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.