2010-08-19 42 views
27

Tôi muốn chuyển hướng tất cả yêu cầu miền cũ của mình đến miền mới của tôi bằng tệp htaccess. Dưới đây là những gì tôi đang sử dụng nhưng nó không hoạt động nếu trang không có trên trang web mới. Ví dụ: google index about.htm trên trang cũ nhưng trên trang mới nó không tồn tại. Tôi muốn nó chỉ đi đến gốc trong mọi trường hợp. Tôi biết đây không phải là lý tưởng cho seo nhưng tôi không muốn bất kỳ 404s. Bất kỳ đề xuất?htaccess chuyển hướng tất cả các trang đến một trang

Redirect 301/http://www.thenewdomain.com/ 
+1

thể trùng lặp của [.htaccess 301 chuyển hướng tất cả các trang trên tên miền cũ sang một trang duy nhất trên tên miền mới] (http://stackoverflow.com/questions/15057146/htaccess-301-redirect-all-page-on-old-domain-to-a-trang-on-new-domain) – mattdm

Trả lời

20

Bạn đang cố gắng đưa khách truy cập đến old.com/about.htm để truy cập new.com/about.htm? Nếu vậy, bạn có thể làm điều này với một quy tắc mod_rewrite trong .htaccess:

RewriteEngine on

RewriteRule ^(.*)$ http://www.thenewdomain.com/$1 [R=permanent,L]

+0

không, tôi chỉ muốn old.com/about.htm truy cập old.com và sau đó nếu có thể loại bỏ /about.htm để nó chỉ đi đến old.com –

+2

Chỉ cần loại bỏ '$ 1' và bạn nên được tốt! –

11

này sẽ chỉ đạo tất cả mọi thứ từ các máy chủ cũ sang thư mục gốc của máy chủ mới:

RewriteEngine on 
RewriteCond %{http_host} ^www.old.com [NC,OR] 
RewriteCond %{http_host} ^old.com [NC] 
RewriteRule ^(.*)$ http://www.thenewdomain.org/ [R=301,NC,L] 
+1

FYI: cờ [NC] trên dòng cuối cùng là vô dụng. –

+0

làm thế nào về, chuyển hướng tất cả, ngoại trừ những người từ '/ admin'? vì vậy bảng quản trị có thể đạt được? –

+0

@FranciscoCorralesMorales - để làm điều đó, bạn có thể thêm dòng này: RewriteCond% {REQUEST_URI}!/Admin/$ vào RewriteCond trước dòng RewriteRule. –

49

Nếu mục tiêu của bạn là chuyển hướng tất cả các trang đến một trang duy trì (vì tiêu đề cũng có thể đề xuất trang này), thì hãy sử dụng:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !/maintenance.php$ 
RewriteCond %{REMOTE_HOST} !^000\.000\.000\.000 
RewriteRule $ /maintenance.php [R=302,L] 

Trường hợp 000 000 000 000 phải được thay thế bằng your ip adress.

Nguồn:

http://www.techiecorner.com/97/redirect-to-maintenance-page-during-upgrade-using-htaccess/

+0

làm thế nào về, chuyển hướng tất cả, ngoại trừ những cái từ '/ admin'? vì vậy bảng quản trị có thể đạt được? –

+0

Phương pháp này chặn bất kỳ tài nguyên nào được sử dụng trên trang bảo trì. Hãy thử thêm dòng này sau dòng thứ hai: 'RewriteCond% {REQUEST_URI}! \. (Jpe? G? | Png | gif | js | css | woff | ttf | ico) [NC]' –

3
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC] 
RewriteRule ^(.*)$ "http://www.thenewdomain.com/" [R=301,L] 
Các vấn đề liên quan