Adalah mungkin untuk mengatur dasar halaman HTML untuk redirect ke halaman lain pada beban?
Coba gunakan:
<meta http-equiv="refresh" content="0; url=http://example.com/" />
Catatan: Letakkan di bagian kepala.
Selain itu untuk browser lama jika anda menambahkan link cepat dalam kasus itu doesn't refresh dengan benar:
<p><a href="http://example.com/">Mengarahkan</a></p>
Akan muncul seperti
Ini masih akan memungkinkan anda untuk mendapatkan di mana anda're terjadi dengan sebuah klik tambahan.
Saya akan menggunakan kedua meta, dan kode JavaScript dan akan memiliki link hanya dalam kasus.
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="0; url=http://example.com">
<script type="text/javascript">
window.location.href = "http://example.com"
</script>
<title>Page Redirection</title>
</head>
<body>
<!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
If you are not redirected automatically, follow this <a href='http://example.com'>link to example</a>.
</body>
</html>
Untuk kelengkapan, saya pikir cara terbaik, jika memungkinkan, adalah dengan menggunakan server komputer, sehingga mengirim 301 kode status. Hal ini mudah dilakukan via `.htaccess file menggunakan Apache, atau melalui berbagai plugin yang menggunakan WordPress. Saya yakin ada juga plugin untuk semua utama sistem manajemen konten. Juga, cPanel sangat mudah konfigurasi untuk pengalihan 301 jika anda memiliki diinstal pada server anda.
Ini adalah jumlah dari setiap jawaban sebelumnya plus tambahan solusi menggunakan HTTP Refresh melalui Sundulan .htaccess
1. HTTP Refresh Header
Pertama-tama, anda dapat menggunakan .htaccess untuk mengatur refresh header seperti ini
Header set Refresh "3"
Ini adalah "statis" setara dengan menggunakan header()
fungsi PHP
header("refresh: 3;");
Perhatikan bahwa solusi ini tidak didukung oleh semua browser.
2. JavaScript
Dengan alternatif URL:
<script>
setTimeout(function(){location.href="http://example.com/alternate_url.html"} , 3000);
</script>
Tanpa alternatif URL:
<script>
setTimeout("location.reload(true);",timeoutPeriod);
</script>
Melalui jQuery:
<script>
window.location.reload(true);
</script>
3. Meta Refresh
Anda dapat menggunakan meta refresh ketika ketergantungan pada JavaScript dan file header yang tidak diinginkan
Dengan URL alternatif:
<meta http-equiv="Refresh" content="3; url=http://example.com/alternate_url.html">
Tanpa alternatif URL:
<meta http-equiv="Refresh" content="3">
Menggunakan <noscript>
:
<noscript>
<meta http-equiv="refresh" content="3" />
</noscript>
Opsional
Seperti yang direkomendasikan oleh Billy Moon, anda bisa memberikan refresh link dalam kasus sesuatu yang tidak beres:
Jika anda tidak diarahkan secara otomatis: <a href='http://example.com/alternat_url.html'>Klik di sini</a>
Sumber daya
Berikut meta tag, ditempatkan antara di dalam kepala, yang akan memberitahu browser untuk redirect:
<meta http-equiv="Refresh" content="seconds; url=URL">
Mengganti detik dengan jumlah detik untuk menunggu sebelum pengalihan, dan ganti URL dengan URL yang anda inginkan untuk redirect ke.
Atau, anda dapat mengarahkan dengan JavaScript. Tempat ini di dalam tag script di mana saja pada halaman:
window.location = "URL"
Jika anda berharap untuk mengikuti standar web modern, anda harus menghindari polos HTML meta pengalihan. Jika anda tidak dapat membuat kode sisi server, anda harus memilih JavaScript redirect sebagai gantinya.
Untuk mendukung JavaScript dinonaktifkan browser add a meta HTML redirect baris ke noscript
elemen. The noscript
bersarang meta mengarahkan dikombinasikan dengan canonical
akan membantu anda peringkat mesin pencari juga.
Jika anda ingin menghindari redirect loop, anda harus menggunakan lokasi.mengganti()
fungsi JavaScript.
Tepat client-side URL redirect kode terlihat seperti ini (dengan Internet Explorer 8 dan menurunkan memperbaiki dan tanpa penundaan):
<!-- Pleace this snippet right after opening the head tag to make it work properly -->
<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->
<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://stackoverflow.com/"/>
<noscript>
<meta http-equiv="refresh" content="0; URL=https://stackoverflow.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
var url = "https://stackoverflow.com/";
if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
{
document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
var referLink = document.createElement("a");
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
}
else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->
Anda bisa menggunakan META "mengarahkan":
<meta http-equiv="refresh" content="0; url=http://new.example.com/address" />
atau JavaScript redirect (perhatikan bahwa tidak semua pengguna memiliki JavaScript diaktifkan jadi selalu siapkan backup solusi untuk mereka)
<script language="javascript">
window.location = "http://new.example.com/address";
</script>
Tapi aku'd agak merekomendasikan menggunakan mod_rewrite, jika anda memiliki pilihan.
Segera setelah halaman beban, init
fungsi dipecat dan halaman dialihkan:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<script>
function init()
{
window.location.href = "www.wherever.com";
}
</script>
</head>
<body onload="init()">
</body>
</html>
Letakkan kode berikut antara <HEAD> dan </HEAD> tags kode HTML anda:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">
Di atas HTML redirect code akan mengarahkan pengunjung ke halaman web lain langsung. Content="0;
dapat diubah untuk jumlah detik anda ingin browser menunggu sebelum mengarahkan.
Saya menemukan masalah saat bekerja dengan jQuery Mobile aplikasi, di mana dalam beberapa kasus saya Meta tag header tidak't mencapai pengalihan benar (jQuery Mobile doesn't baca header secara otomatis untuk setiap halaman sehingga menempatkan JavaScript di sana juga tidak efektif kecuali membungkusnya dalam kompleksitas). Saya menemukan solusi yang termudah dalam hal ini adalah untuk menempatkan JavaScript pengalihan langsung ke dalam tubuh dokumen, sebagai berikut:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0;url=myURL" />
</head>
<body>
<p>You are not logged in!</p>
<script language="javascript">
window.location = "myURL";
</script>
</body>
</html>
Hal ini tampaknya bekerja dalam segala hal untuk saya.
Cara sederhana yang bekerja untuk semua jenis halaman ini hanya untuk menambah meta tag di kepala:
<html>
<head>
...
<meta HTTP-EQUIV="REFRESH" content="seconds; url=your.full.url/path/filename">
...
</head>
<body>
Don't put much content, just some text and an anchor.
Actually, you will be redirected in N seconds (as specified in content attribute).
That's all.
...
</body>
</html>
Saya menggunakan script yang mengarahkan pengguna dari index.html untuk relatif url dari Halaman Login
<html>
<head>
<title>index.html</title>
</head>
<body onload="document.getElementById('lnkhome').click();">
<a href="/Pages/Login.aspx" id="lnkhome">Go to Login Page<a>
</body>
</html>
Hanya untuk mengukur baik:
<?php
header("Location: [email protected]", TRUE, 303);
exit;
?>
Pastikan tidak ada echo's atas script jika tidak maka akan diabaikan. http://php.net/manual/en/function.header.php
Hanya menggunakan onload event dari tag body:
<body onload="window.location = 'http://example.com/'">
Razor mesin selama 5 detik delay:
<meta http-equiv="Refresh"
content="5; [email protected]("Search", "Home", new { id = @Model.UniqueKey }))">