NTM Solutions

Thứ Bảy, 28 tháng 10, 2017

CÁCH REDIRECT TRANG WEB


Cách redirect trang web

Phía SERVER

Đối với PHP, nếu chỉ sử dụng PHP cú pháp gởi header bằng cách dùng header(“location: some_url”) thì chỉ tạo được header có status code là 302(Found) chứ không phải 301(Moved Permanently), do đó muốn nhận được status code 301 ở phía trình duyệt thì bạn cần phải gởi thêm status code trước khi gởi location.

Ngôn ngữ PHP


<?
 Header( "HTTP/1.1 301 Moved Permanently" );
 Header( "Location: http://www.new-url.com" );
 ?>
-----------------------------------------------------------------------

ColdFusion Redirect

 <.cfheader statuscode="301" statustext="Moved permanently">
 <.cfheader name="Location" value="http://www.new-url.com">
-----------------------------------------------------------------------

ASP Redirect

 <%@ Language=VBScript %>
 <%
 Response.Status="301 Moved Permanently"
 Response.AddHeader "Location","http://www.new-url.com/"
 %>
 
----------------------------------------------------------------------

ASP .NET Redirect

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

JSP (Java) Redirect

 <%
 response.setStatus(301);
 response.setHeader( "Location", "http://www.new-url.com/" );
 response.setHeader( "Connection", "close" );
 %>
----------------------------------------------------------------------

CGI PERL Redirect

 $q = new CGI;
 print $q->redirect("http://www.new-url.com/");
----------------------------------------------------------------------

Ruby on Rails Redirect

 def old_action
 headers["Status"] = "301 Moved Permanently"
 redirect_to "http://www.new-url.com/"
 end
------------------------------------------------------------------------
 

.htaccess

redirect 301 /old/oldURL.com http://www.newURL.com

Phía Client

Dùng thẻ META

<meta http-equiv="refresh" content="5;url=http://www.lophocvitinh.com"/>

Dùng Javascript

 
Dùng hàm window.location = “đường dẫn trang web”
 
<html>
<head>
<script type="text/javascript">
var time = 15; //How long (in seconds) to countdown
var page = "http://www.lophocvitinh.com"; //Trang sẽ redirect
function countDown(){
time--;
gett("container").innerHTML = time;
if(time == -1){
window.location = page;
}
}
function gett(id){
if(document.getElementById) return document.getElementById(id);
if(document.all) return document.all.id;
if(document.layers) return document.layers.id;
if(window.opera) return window.opera.id;
}
function init(){
if(gett('container')){
setInterval(countDown, 1000);
gett("container").innerHTML = time;
}
else{
setTimeout(init, 50);
}
}
document.onload = init();
</SCRIPT>
</head>
<body>
<h2>Prepare to be redirected after <span id="container"></span> second(s)!</h2>
</body>
</html>

Kết hợp thẻ META và đếm ngược bằng Javascript

<html>
<head>
<meta http-equiv="refresh" content="5;url=http://www.lophocvitinh.com"/>
<meta charset="utf-8">
<script type="text/javascript">
var time = 5; //thời gian chờ phải khớp với trên thẻ meta tham số content
 
function countDown(){
time--;
gett("container").innerHTML = time;
 
}
function gett(id){
if(document.getElementById) return document.getElementById(id);
if(document.all) return document.all.id;
if(document.layers) return document.layers.id;
if(window.opera) return window.opera.id;
}
function init(){
if(gett('container')){
setInterval(countDown, 1000);
gett("container").innerHTML = time;
}
else{
setTimeout(init, 50);
}
}
document.onload = init();
</SCRIPT>
</head>
<body>
<h2>Vui lòng chờ trong <span id="container"></span> giây!</h2>
</body>
</html>
 
Nếu vẫn chưa hiểu các bạn xem thêm video clip sau:
 
Nguồn: Lớp học vi tính .COM