Nội dung bài viết
Redirect 301 với file .htaccess (chuyển hướng 301) – Chuyển tiếp 301 nên được sử dụng khi một trang web được chuyển tới một tên miền mới để các công cụ tìm kiếm nhanh chóng cập nhật lại chỉ mục của họ và về mặt lý thuyết, nó giúp giữ nguyên thứ hạng của một trang web cụ thể nào đó sau khi thay đổi đường dẫn. Còn trên thực tế, một điều có thể chắc chắn là nó giúp bạn không mất traffic và người đọc không bị rơi vào trang báo lỗi 404.
Cấu Hình 301 Redirect với file .htaccess
RewriteEngine on
RewriteRule (.*) https://phonuiit.com/$1 [R=301,L]
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.seochuyennghiep.\.com$ [NC] RewriteRule ^(.*)$ http://www.seochuyennghiep.com/$1 [R=301,L]
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^seochuyennghiep\.com$ [NC] RewriteRule ^(.*)$ http://seochuyennghiep.com/$1 [R=301,L]
Làm thế nào để bạn chuyển hướng link web sang đuôi khác nhưng giữ lại tên trang?
Ví dụ: Nếu bạn muốn : domain.com/baiviet.html thành domain.com/baiviet.php
RedirectMatch 301 (.*).html$ http://www.domain.com$1.php
Làm cách nào để bạn chuyển hướng một trang?
Ví dụ trang bạn tạo là domain.com/quy-dinh-su-dung.php mà muốn chuyển thành domain.com/quy-dinh-su-dung.html thì:
Redirect 301 /quy-dinh-su-dung.php http://www.domain.com/quy-dính-su-dung.html
http://www.domain.com có thể sửa thành domain của bạn, nếu bạn không sử dụng www có thể bỏ đi dòng này.
Làm cách nào để chuyển hướng toàn bộ trang web hoặc tên miền sang trang web hoặc miền mới?
Đôi khi bạn đổi domain cho đẹp thì đây là cách để chuyển toàn bộ link web cũ sang link web mới – cấu trúc link bài viết web cũ đã chuyển hết qua web mới trước nhé.
Redirect 301 / http://www.domain.com/
Làm thế nào để bạn chuyển hướng toàn bộ một trang web vào một thư mục con:
Ví dụ bạn cần chuyển tất cả các link dạng domain.com/bài viết thành domain.com/user/bài viết với user là thư mục bạn cần chuyển .
Redirect 301 / http://www.domain.com/user/
Làm thế nào để bạn chuyển hướng đến subdomain:
Ví dụ bạn có link web cũ là : domain.com thành subdomain.domain.com
Redirect 301 /subdomain http://www.domain.com/
Làm thế nào để bạn chuyển hướng link web sang đuôi khác nhưng giữ lại tên trang?
Ví dụ: Nếu bạn muốn : domain.com/baiviet.html thành domain.com/baiviet.php
RedirectMatch 301 (.*).html$ http://www.domain.com$1.php
Chon nút “a redirection to a URL”;
Chọn trang Redirection;
Chon tiếp “The exact url entered above” và “A permanent redirection for this resource”;
Chon “Apply”.
<.cfheader name=”Location” value=”https://phonuiit.com/”>
Header( “Location: https://phonuiit.com/” );
?>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”https://phonuiit.com/”
%>
response.setStatus(301);
response.setHeader( “Location”, “https://phonuiit.com/” );
response.setHeader( “Connection”, “close” );
%>
print $q->redirect(“https://phonuiit.com/”);
headers[“Status”] = “301 Moved Permanently”
redirect_to “https://phonuiit.com/”
end
Lưu ý: Thay đổi phonuiit.com bằng tên miền của bạn
Bổ sung:
Dòng lệnh bắt đầu .htaccess
Options +FollowSymLinks RewriteEngine On RewriteBase /
Dòng lệnh cơ bản redirect 301
redirect 301 /old/old.htm https://phonuiit.com/new.htm
old.htm
trong thư mục old
đến vị trí mới tại https://phonuiit.com/new.htm
.Chuyển toàn bộ đến tên miền mới
Options +FollowSymLinks RewriteEngine on RewriteRule (.*) https://phonuiit.com/$1 [R=301,L]
www.phonuiit
.com bằng tên miền mới của bạn.Redirect toàn bộ trang trong một thư mục đến một trang mới
RewriteRule ^thuthuat(.*)$ /blogthuthuat.php [L,R=301]
Chuyển các trang động tới một trang mới
page.php?id=n
(với n là giá trị biến) tới một trang tĩnh mới new-page.html
thì bạn có thể làm như sau :RewriteRule ^page.php?id=(.*)$ /new-page.htm [L,R=301]
URL với www hay không www
Trường hợp sử dụng www
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.phonuiit.\.com$ [NC] RewriteRule ^(.*)$ https://phonuiit.com/$1 [R=301,L]
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.[a-z-]+\.[a-z]{2,6} [NC] RewriteCond %{HTTP_HOST} ([a-z-]+\.[a-z]{2,6})$ [NC] RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]
Trường hợp không sử dụng www
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^phonuiit\.com$ [NC] RewriteRule ^(.*)$ https://phonuiit.com/$1 [R=301,L]
Loại bỏ Query_String
seo-tools.php
và seo-tools.php?v=mobile
. Tương tự như phần trên, điều này sẽ tạp ra nội dung trùng lặp trên website của bạn. Vì vậy bạn có thể loại bỏ các tham biến như sau :RewriteCond %{THE_REQUEST} ^GET\ /.*\;.*\ HTTP/ RewriteCond %{QUERY_STRING} !^$ RewriteRule .* https://phonuiit.com%{REQUEST_URI}? [R=301,L]
RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} . RewriteRule ^index.php /index.php? [L]
Chuyển phần đuôi mở rộng từ .php sang .html
RewriteRule ^(.*)\.html$ $1.php [R=301,L]
Chuyển gạch dưới (_) thành gạch ngang(-)
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule !\.(html|php)$ – [S=4] RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=uscor:Yes] RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes] RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes] RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes] RewriteCond %{ENV:uscor} ^Yes$ RewriteRule (.*) https://phonuiit.com/$1 [R=301,L]
Redirect WordPress Feeds tới Feedburner
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/feed\.gif$ RewriteRule .* – [L] RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC] RewriteRule ^feed/?.*$ http://feeds.phonuiit.com/Seo/ [L,R=302] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
Bào vệ ăn cắp tài nguyên và băng thông
RewriteEngine On RewriteBase / RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?phonuiit.com/.*$ [NC] RewriteRule \.(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
Ứng dụng redirect 301 trên các máy chủ khác (ngoài Apache)
IIS redirect
ColdFusion Redirect
<.cfheader statuscode=”301″ statustext=”Moved permanently”> <.cfheader name=”Location” value=”https://phonuiit.com”>
PHP Redirect
<? Header( “HTTP/1.1 301 Moved Permanently” ); Header( “Location: https://phonuiit.com” ); ?>
ASP Redirec
<%@ Language=VBScript %> <% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”,”https://phonuiit.com/” %>
ASP .NET Redirect
<script runat=”server”> private void Page_Load(object sender, System.EventArgs e) { Response.Status = “301 Moved Permanently”; Response.AddHeader(“Location”,”https://phonuiit.com/”); } </script>
JSP (Java) Redirect
<% response.setStatus(301); response.setHeader( “Location”, “https://phonuiit.com/” ); response.setHeader( “Connection”, “close” ); %>
CGI PERL Redirect
$q = new CGI; print $q->redirect(“https://phonuiit.com/”);
Ruby on Rails Redirect
def old_action headers[“Status”] = “301 Moved Permanently” redirect_to “http://www.seochuyennghiep.com/” end
[yasr_visitor_votes size="medium"]
Awesome article.