2010-07-15 46 views
5

Làm cách nào để chuyển hướng tất cả các yêu cầu (bất kể trang nào đang được yêu cầu) trên sub.domain.com đến newdomain.com? Hiện nay tôi cóhtaccess: chuyển hướng tất cả yêu cầu đến miền khác

Redirect 301/http://www.newdomain.com/ 

Khi một yêu cầu do thỏa thuận hợp cho domain.com/shop/product chuyển hướng đi vào newdomain.com/shop/product trong khi nó chỉ nên đến newdomain.com

+0

https://stackoverflow.com/questions/1945568/htaccess-redirect-all-pages-to-new-domain – rsharpy

Trả lời

8

Sử dụng Rewrite:

RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/ [R=301,L] 
+0

Việc này sẽ đưa mọi yêu cầu đến 'http: // www.newdomain.com' nhưng không chuyển tiếp chúng . – Starx

+0

Tại sao bạn nghĩ vậy? Các tài liệu nói rõ ràng: "Sử dụng cờ [R] làm cho một chuyển hướng HTTP được cấp cho trình duyệt. Nếu một URL đủ điều kiện được chỉ định (nghĩa là, bao gồm cả' http: // servername/') thì chuyển hướng sẽ được cấp cho vị trí đó. Nếu không, giao thức hiện tại, tên máy chủ và số cổng sẽ được sử dụng để tạo URL được gửi cùng với chuyển hướng. " http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_r –

+0

Trước hết tôi đã thử nghiệm và không hoạt động, sau đó tôi tiếp tục tìm hiểu nguyên nhân của nó bởi vì khi bạn nói điều này là một quy tắc hợp lệ, nhưng có '/ $ 1' ở cuối hoạt động trên hầu hết các máy chủ của tôi (tôi chưa thử nghiệm tất cả). – Starx

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

Điều đó sẽ chuyển tiếp bất kỳ yêu cầu GET.

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