2008-08-19 18 views
39

Tôi có 2 máy chủ và tôi muốn chỉ một tên miền phụ trên máy chủ từ một đến một tên miền phụ trên máy chủ hai:Làm thế nào để chuyển hướng Sitea để siteB với bản ghi A hoặc CNAME

subdomain.hostone.com --> subdomain.hosttwo.com 

Tôi đã thêm một bản ghi CNAME để lưu trữ một điểm trỏ đến subdomain.hosttwo.com nhưng tất cả những gì tôi nhận được là '400 Yêu cầu không hợp lệ'.

Có ai có thể xem tôi đang làm gì sai không?

+11

Tôi không thấy rằng đây không phải là chủ đề. Cấu hình DNS nằm trong lĩnh vực lập trình. – superluminary

+20

@superluminary: "offtopic" có nghĩa là mod không biết trường, hoặc có ngày làm tóc xấu hoặc muốn có huy hiệu để đóng vé. Trong trường hợp này, câu hỏi là phù hợp hơn cho ServerFault IMHO, vì vậy nó nên đã được di chuyển, không đóng cửa. – SamGoody

+0

Không thể đồng ý nhiều hơn, bài đăng này nên được mở lại hoặc di chuyển, cấu hình DNS là nội dung nằm giữa hai khu vực. –

Trả lời

13

Hãy thử thay đổi nó thành "tên miền phụ -> subdomain.hosttwo.com"

Các CNAME là một bí danh cho một tên miền nhất định, vì vậy khi bạn đi đến bảng điều khiển cho hostone.com, bạn không nên có để nhập toàn bộ tên vào bí danh CNAME.

Theo như lỗi bạn đang nhận được, bạn có thể đăng nhập vào tên miền phụ.hostwo.com và kiểm tra nhật ký không?

+0

những gì khác với chuyển hướng URI bình thường và chuyển hướng CNAME? – Elankeeran

+2

Chuyển hướng URL @Elankeeran có thể có đường dẫn được thêm vào nó - CNAMES chỉ có thể được tạo thành các tên miền đầy đủ. ví dụ. Chuyển hướng URL được chia nhỏ (ví dụ: 'www') thành <[Miền phụ.] Miền.TLD> [/ Đường dẫn [/ ...]] (ví dụ:' https: // www.example.com/sites/xyz') trong đó dưới dạng tên miền phụ CNAME (ví dụ: 'www') thành <[SubDoman.] Domain.TLD> (ví dụ:' ghs.google.com') –

+0

CNAME là bí danh cho bản ghi A hoặc AAAA, không bao giờ là miền nhưng luôn là tên * trong * tên miền hoặc tên miền, viết tắt. –

2

Có vẻ như máy chủ web trên hosttwo.com không cho phép các tên miền không xác định được chuyển qua. Bạn cũng nói rằng bạn muốn thực hiện chuyển hướng, đây thực sự không phải là phương thức để chuyển hướng. Nếu bạn mua tên miền này thông qua GoDaddy, bạn có thể chỉ muốn sử dụng dịch vụ chuyển hướng của họ.

+0

hoặc thay đổi máy chủ lưu trữ :) – Eoin

0

Có lẽ tốt nhất/dễ nhất để thiết lập 301 redirect. Không yêu cầu hack DNS.

0

Bạn chỉ có thể đặt tên DNS thành địa chỉ IP khác, vì vậy nếu bạn đang sử dụng máy chủ ảo chuyển hướng bằng DNS sẽ không hoạt động.

Khi bạn nhập tên miền phụ.hostone.com vào trình duyệt, nó sẽ sử dụng DNS để có địa chỉ IP (nếu là CNAME, nó sẽ tiếp tục cố gắng cho đến khi nó được IP từ bản ghi A), sau đó nó sẽ kết nối với IP đó và gửi một yêu cầu http với

Host: subdomain.hostone.com

ở đâu đó trong tiêu đề http.

0

Bạn có thể thực hiện điều này theo một số cách không phải DNS. Trang đích tại tên miền phụ.hostone.com có ​​thể có số HTTP redirect. Máy chủ web tại hostone.com có ​​thể được định cấu hình để chuyển hướng (dễ dàng trong Apache, không chắc chắn về IIS), v.v.

11

Tôi nghĩ rằng một số câu trả lời đã xảy ra xung quanh giải pháp có thể cho vấn đề của bạn.

Tôi đồng ý (và giải pháp tốt nhất cho mục đích SEO) dễ nhất là chuyển hướng 301. Trong IIS, điều này khá tầm thường, bạn nên tạo một site cho subdomain.hostone.com, sau khi tạo site, bấm chuột phải vào site và đi vào các thuộc tính. Nhấp vào tab "Thư mục chính" của cửa sổ thuộc tính trang web mở ra. Chọn nút radio "Chuyển hướng đến URL", nhập url cho trang web mới (http://subdomain.hosttwo.com) và chọn hộp kiểm cho "URL chính xác được nhập ở trên", "Chuyển hướng vĩnh viễn cho tài nguyên này" (hộp kiểm thứ hai này gây ra Chuyển hướng 301, thay vì chuyển hướng 302). Nhấp OK và bạn đã hoàn tất.

Hoặc bạn có thể tạo một trang trên trang web của http://subdomain.hostone.com, bằng một trong những phương pháp sau đây (tùy thuộc vào những gì các nền tảng lưu trữ hỗ trợ)

PHP Redirect:


<? 
Header("HTTP/1.1 301 Moved Permanently"); 
Header("Location: http://subdomain.hosttwo.com"); 
?> 

ASP Redirect:


<%@ Language=VBScript %> 
<% 
Response.Status="301 Moved Permanently" 
Response.AddHeader "Location","http://subdomain.hosttwo.com" 
%> 

ASP .NET Chuyển hướng:


<script runat="server"> 
private void Page_Load(object sender, System.EventArgs e) 
{ 
Response.Status = "301 Moved Permanently"; 
Response.AddHeader("Location","http://subdomain.hosttwo.com"); 
} 
</script> 

Bây giờ giả sử bản ghi CNAME của bạn được tạo chính xác, thì vấn đề duy nhất bạn gặp phải là trang web được tạo cho http://subdomain.hosttwo.com đang sử dụng IP được chia sẻ và tiêu đề máy chủ để xác định trang web nào sẽ được hiển thị. Để giải quyết vấn đề này trong IIS, trong IIS Manager trên máy chủ web, bạn nhấn chuột phải vào trang web cho subdomain.hosttwo.com và nhấp vào "Properties". Trên tab "Trang Web" được hiển thị, bạn sẽ thấy nút "Nâng cao" bên cạnh địa chỉ IP mà bạn sẽ cần phải nhấp vào. Trên cửa sổ "Nhận dạng trang web nâng cao" xuất hiện, hãy nhấp vào "Thêm". Chọn cùng một địa chỉ IP đã được sử dụng bởi subdomain.hosttwo.com, nhập 80 làm cổng TCP, sau đó nhập subdomain.hosttwo.com làm giá trị Host Header. Nhấn OK cho đến khi bạn quay trở lại cửa sổ IIS Manager chính, và bạn nên làm tốt. Mở trình duyệt, và duyệt đến http://subdomain.hostone.com, và bạn sẽ thấy trang web ở http://subdomain.hosttwo.com xuất hiện, mặc dù URL của bạn hiển thị http://subdomain.hostone.com

Hy vọng rằng sẽ giúp ...

+0

Tôi khá chắc chắn rằng hàm PHP header() là tất cả chữ thường. –

+2

@UncleNinja: Trong khi PHP định nghĩa hàm header() là tất cả chữ thường (và đây là cách nó được sử dụng trong mã), ngôn ngữ PHP không phân biệt chữ hoa chữ thường, do đó, 'Header()' sẽ vẫn hoạt động . – MrWhite

+1

@ w3d cảm ơn, tôi không biết về điều đó! –

2

Những ngày này, nhiều chủ sở hữu trang web đang sử dụng dịch vụ CDN sẽ lấy dữ liệu từ máy chủ CDN. Nếu đó là trường hợp của bạn thì bạn chỉ còn lại hai lựa chọn:

  1. Tạo một tên miền phụ và chỉnh sửa DNS bằng cách thêm một bản ghi CNAME

  2. Đừng tạo một subdomain nhưng chỉ tạo ra một bản ghi CNAME trỏ quay lại URL DNS tạm thời của bạn.

Giải pháp này chỉ ngụ ý việc lấy mã từ cdn.sitename.com nhưng thực tế nó lấy dữ liệu từ máy chủ CDN của bạn.

Các vấn đề liên quan