Hướng dẫn php redirect 301 - chuyển hướng php 301

  • Trang chủ
  • Hướng dẫn học
  • Hướng dẫn học htaccess
  • htaccess redirect 301 và 302

htaccess - redirect 301 và 302

  • Từ cách đối xử của trình duyệt mà ta phân biệt redirect làm 2 loại là 301 và 302.
  • 2 số 301 và 302 là mã báo lỗi tương ứng của trình duyệt.
  • Tùy vào nhu cầu mà ta sẽ sử dụng mã redirect cho chính xác, xem nội dung bên dưới để hiểu rõ hơn nhé.

htaccess - redirect 301

  • Redirect 301: redirect vĩnh viễn, tức là khi thay đổi ta sẽ bỏ và không dùng lại đường dẫn cũ.
  • Dùng trong trường hợp như thay đổi đường dẫn mới, chuyển domain mới, chuyển trang thành sub-domain, ...

Redirect 301 /inquiry.php /contact.php

htaccess - redirect 302

  • Redirect 302: redirect tạm thời, tức là khả năng sau này sẽ sử dụng lại đường dẫn cũ
  • Dùng trong trường hợp trang đang bảo trì, sử dụng trang mới trong thời gian ngắn, ...

Redirect 302 /event.php /maintenance.php

File .htaccess là một file rất quyền năng đối với website, nó có khả năng thay đổi rất nhiều thứ. Bài này tôi sẽ hướng dẫn các bạn cách dùng redirect 301 trong .htaccess. Hãy chắn chắn webserver của bạn chạy Apache hỗ trợ mod_rewrite.mod_rewrite.

1.Chuyển hướng tên miền

Khi bạn muốn khi truy cập vào website của bạn nó sẽ chuyển hướng sang một tên miền khác.

RewriteEngine on
RewriteRule (.*) http://tênmiền.com/ [R=301,L]

2.Chuyển hướng trang web

Khi bạn muốn chuyển hướng mọi trang web nằm trong 1 thư mục sang 1 trang web khác.

VD: Thư mục Game bạn ko dùng nữa và trong đó có rất nhiều trang web, bạn muốn chuyển hướng mọi trang web trong thư mục game sang trang game.phpgame.php

RewriteEngine on
RewriteRule ^game(.*)$ /game.php [L,R=301]

3.Chuyển hướng file

Bạn muốn chuyển hướng 1 file nào đó sang 1 file mới, VD truy cập old.php sẽ nhảy sang new.php.

Redirect 301 /old.php /new.php

4.Chuyển hướng www hoặc non www.

Bạn muốn chuyển tên miền của bạn về dạng www.tên miền .com, hoặc ko muốn có www thì bạn bỏ www trong đoạn dưới đi.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.tênmiền.com$ [NC]
RewriteRule ^(.*)$ http://www.tênmiền.com/ [R=301,L]

5.Chuyển đuôi mở rộng từ .php sang .html

Bạn muốn chuyển đuôi từ .php sang .html để phục vụ mục đích SEO hay đơn giản là ko thích cái đuôi .php.

RewriteRule ^(.*).html$ .php [R=301,L]

6.Bảo vệ tài nguyên web

Khi bạn có 1 video hay clip nào đó hay nhiều người xem, các web khác sẽ câu về hiển thị trên web của họ, web bạn ko dc lượt truy cập nhưng băng thông vẫn mất. Bạn muốn tài nguyên đó ko hiển thị ở web khác.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?tênmiền.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

Sẽ có lúc bạn muốn chuyển hướng khách truy cập đến một trang khác của trang web khi họ truy cập một trang hoặc bài viết cụ thể. Lý do cho điều này có thể là bạn đã đổi tên một bài đăng và URL của nó, một trang đã bị xóa hoặc bạn muốn một trang khác xếp hạng.

Bạn mới sử dụng WordPress? Đào tạo WordPress cho người mới bắt đầu của chúng tôi ở đây để trợ giúp. Tìm hiểu cách thiết lập trang web của riêng bạn, tìm hiểu thông tin chi tiết về việc tạo và duy trì nó, v.v.

Các bài viết liên quan:

Tóm lại, redirect

Cái tên ‘redirect’ nói lên tất cả: Nó đưa khách truy cập vào một trang cụ thể đến một trang khác. 

Nhưng sự khác biệt chúng tôi hướng tới ở đây so với 302 và 301 là gì ?

Cả hai đều đưa người dùng của bạn đến một trang khác. Sự khác biệt nhỏ (nhưng rất quan trọng) duy nhất là 301 sẽ vĩnh viễn đưa khách truy cập và công cụ tìm kiếm đến đích mới. Chuyển hướng 302 chỉ ra rằng bạn chỉ tạm thời muốn khách truy cập được chuyển đến một trang khác.

Tạo chuyển hướng 301 trên máy chủ

Một trong những phương pháp cơ bản nhất để thêm chuyển hướng 301 là chỉnh sửa tệp .htaccess của bạn trên máy chủ. Phương pháp này chỉ khả dụng trên máy chủ Apache. Nginx có cách riêng của họ để xác định chuyển hướng trong cấu hình máy chủ và yêu cầu kiến ​​thức sâu rộng về quản trị hệ thống.

Những cấu hình này có thể trở nên khá khó xác định theo thời gian, đặc biệt nếu bạn là một blogger đam mê hoặc bạn đang cố gắng cải thiện SEO cho các bài đăng của mình. Trên hết, bạn sẽ phải đăng nhập vào máy chủ của mình qua FTP, chỉnh sửa tệp và tải lên lại chúng mỗi khi bạn thêm chuyển hướng mới. Đó là lý do tại sao, nói chung, sử dụng phương pháp này không được coi là cách để đi.

Xem thêm lỗi 404

Dùng PHP cho việc Tạo chuyển hướng 301Tạo chuyển hướng 301

Là nhà phát triển WordPress, bạn có hai lựa chọn: Hoặc bạn thực hiện chuyển hướng bằng cách thay đổi tiêu đề của tệp trong mã – hoặc – bạn sử dụng tích hợp sẵn của WordPress

Hàm wp_redirect.

Một ví dụ về PHP thuần túy có thể như sau:

Và đây là cách bạn làm tương tự, nhưng bây giờ bằng cách sử dụng chức năng tích hợp sẵn của WordPress:

wp_redirect ("http://www.my-blog.com/a-new-destination", 301);

Nếu bạn quên thêm 301, cả WordPress và PHP đều sẽ cho rằng đó là chuyển hướng 302, điều này không phải lúc nào cũng đúng.

Phương pháp này dễ dàng hơn một chút so với việc chỉnh sửa các tệp trên máy chủ, nhưng cũng có thể trở nên cồng kềnh khi số lượng chuyển hướng tăng lên.

Xem thêm chuyển hướng trong SEO

Tạo chuyển hướng 301 với 301 redirect

Plugin 301 redirect  cung cấp cho bạn sự trợ giúp khi tạo các chuyển hướng này. Trình quản lý chuyển hướng tích hợp hỗ trợ bạn bất cứ khi nào bạn thay đổi URL của bài đăng, trang hoặc bất kỳ đơn vị phân loại nào có thể dẫn đến lỗi 404 nếu bạn không chuyển hướng khách truy cập đúng cách.

Hướng dẫn php redirect 301 - chuyển hướng php 301

Ngoài ra, chúng cũng cung cấp cho bạn một giao diện để chỉnh sửa hoặc xóa các chuyển hướng này vào thời điểm sau đó. Lưu ý khi bạn chuẩn bị tạo một chuyển hướng dẫn đến một vòng lặp chuyển hướng. Vòng lặp này là điều bạn muốn tránh bằng mọi giá.

Đọc thêm: Cách xóa đúng cách các trang khỏi trang web