幾種網頁轉址與「302 永久搬移」的語法

轉址的方式分為:

  • 302: 暫時搬移 (Temporarily Moved)
  • 301: 永久搬移 (Permanently Moved)

一般網頁轉址與「302 暫時搬移」

HTML

<head>
<meta http-equiv=refresh content="0;url=http://host.domain.tld/path/to/">
</head>

JavaScript

<script language="JavaScript">
<!--
  window.location.href = "http://host.domain.tld/path/to/";
//-->
</script>

PHP

<?php
  header("Location: http://host.domain.tld/path/to/");
?>

(轉址前不可有任何資料輸出)

Perl

#!/usr/bin/perl -w
print "Location: http://host.domain.tld/path/to/\n\n";

(轉址前不可有任何資料輸出)

Perl - 使用 CGI 模組

#!/usr/bin/perl -w
use CGI qw/:standard/;
my $CGI = CGI->new();
print $CGI->redirect(
  -location => "http://host.domain.tld/path/to/"
);

(轉址前不可有任何資料輸出)

301 永久搬移

「301 永久搬移」必須在 Server 的 Header 做宣告,因此沒有 Client 端的 HTML 或 JavaScript 語法。

PHP

<?php
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://host.domain.tld/path/to/");
?>

(轉址前不可有任何資料輸出)

Perl

#!/usr/bin/perl -w
print "Status: 301 Moved Permanently\n";
print "Location: http://host.domain.tld/path/to/\n\n";

(轉址前不可有任何資料輸出)

Perl - 使用 CGI 模組

#!/usr/bin/perl -w
use CGI qw/:standard/;
my $CGI = CGI->new();
print $CGI->redirect(
  -location => "http://host.domain.tld/path/to/",
  -status => 301,
);

(轉址前不可有任何資料輸出)

參考網頁

  1. Status Code Definitions
  2. Redirect Checker | Check your Statuscode 301 vs 302
  3. Redirect Checker | InternetOfficer
  1. Using Mozilla Firefox Mozilla Firefox 14.0.1 on Windows Windows XP

    請問各要存成哪種副檔名,html 的存成 .htm 或 .html 這個沒問題,
    其他的呢,可以解說的再詳盡一點嗎,謝謝

  2. Using Google Chrome Google Chrome 28.0.1500.95 on Windows Windows 7

    非常實用

return top

%d 位部落客按了讚: