Yüklenen başka bir sayfaya yönlendirmek için temel bir HTML sayfası ayarlamak mümkün müdür?
Yüklenen başka bir sayfaya yönlendirmek için temel bir HTML sayfası ayarlamak mümkün müdür?
Yanıtlar:
Kullanmayı deneyin:
<meta http-equiv="refresh" content="0; url=http://example.com/" />
Not: Baş bölümüne yerleştirin.
Ayrıca, eski tarayıcılar için doğru şekilde yenilenmemesi durumunda hızlı bir bağlantı eklerseniz:
<p><a href="http://example.com/">Redirect</a></p>
Olarak görünecek
Bu, ek bir tıklama ile gittiğiniz yere gitmenize izin verecektir.
0
0 saniye sonra yenileme aracı. Neler olduğunu bilmek için kullanıcıya biraz daha zaman vermek isteyebilirsiniz.
Ben ikisini de kullanmak istiyorum meta ve JavaScript kodunu ve sadece bu durumda bir bağlantı olurdu.
<!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>
Tamlık için, mümkünse, sunucu yönlendirmelerini kullanmak için en iyi yol olduğunu düşünüyorum, bu yüzden 301 durum kodu gönderin . Apache.htaccess
kullanan dosyalar veya WordPress kullanan çok sayıda eklenti aracılığıyla bunu yapmak kolaydır . Tüm önemli içerik yönetim sistemleri için de eklentiler olduğundan eminim. Ayrıca, sunucunuzda yüklü ise, cPanel 301 yönlendirmeleri için çok kolay bir yapılandırmaya sahiptir.
body
Etiketleri ve benzerlerini bırakmanın büyük bir hayranı değilim . Belki de doğrular ve ortak tarayıcılarda çalışır. Eminim sorunlara neden olan bazı saçaklar var ve fayda küçük görünüyor.
click here
ekran okuyucuda gezinmek daha zor olacağından, bir bağlantıya sahip olmak önerilmez. Bağlantılar hedefi açıklayan metinde olmalıdır, böylece kullanıcı onu takip etmeden önce nereye varacaklarını bilir ve bununla etkileşime girer.
Ben ediyorum da senin yardım etmek standart bir bağlantı eklemek SEO insanlar:
<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
Kafanın içine yerleştirilen aşağıdaki meta etiket, tarayıcıya yeniden yönlendirmesini söyleyecektir:
<meta http-equiv="Refresh" content="seconds; url=URL">
Saniyeleri, yönlendirilmeden önce beklenecek saniye sayısı ile değiştirin ve URL'yi, yönlendirmesini istediğiniz URL ile değiştirin.
Alternatif olarak, JavaScript ile yeniden yönlendirebilirsiniz. Bunu bir komut dosyası etiketinin içine sayfanın herhangi bir yerine yerleştirin:
window.location = "URL"
Bu, önceki yanıtların toplamı ve .htaccess aracılığıyla HTTP Yenileme Üstbilgisi kullanan ek bir çözümdür
1. HTTP Yenileme Başlığı
Her şeyden önce, böyle bir yenileme üstbilgisi ayarlamak için .htaccess kullanabilirsiniz
Header set Refresh "3"
Bu, PHP'deheader()
işlevi kullanmanın "statik" eşdeğeridir
header("refresh: 3;");
Bu çözümün her tarayıcı tarafından desteklenmediğini unutmayın.
2. JavaScript
Alternatif bir URL ile :
<script>
setTimeout(function(){location.href="http://example.com/alternate_url.html"} , 3000);
</script>
Alternatif bir URL olmadan:
<script>
setTimeout("location.reload(true);",timeoutPeriod);
</script>
JQuery ile:
<script>
window.location.reload(true);
</script>
3. Meta Yenileme
JavaScript ve yönlendirme başlıklarına bağımlılık istenmediğinde meta yenilemeyi kullanabilirsiniz
Alternatif bir URL ile:
<meta http-equiv="Refresh" content="3; url=http://example.com/alternate_url.html">
Alternatif bir URL olmadan:
<meta http-equiv="Refresh" content="3">
Kullanma <noscript>
:
<noscript>
<meta http-equiv="refresh" content="3" />
</noscript>
İsteğe bağlı olarak
Billy Moon tarafından önerildiği gibi, bir şeyler ters giderse bir yenileme bağlantısı sağlayabilirsiniz:
Otomatik olarak yönlendirilmiyorsanız: <a href='http://example.com/alternat_url.html'>Click here</a>
kaynaklar
setTimeout
Bir dize ile arama yapmayın . Bunun yerine bir işlev iletin.
301 yönlendirmesi ayarlamak daha iyi olur . 301 yönlendirmeleri için Google'ın Web Yöneticisi Araçları makalesine bakın .
Modern web standartlarına uymayı dört gözle bekliyorsanız, düz HTML meta yönlendirmelerinden kaçınmalısınız. Sunucu tarafı kodu oluşturamazsanız, bunun yerine JavaScript yönlendirmesini seçmelisiniz .
JavaScript devre dışı tarayıcıları desteklemek için bir noscript
öğeye bir HTML meta yönlendirme satırı ekleyin . noscript
İle birlikte iç içe meta yönlendirme canonical
etiketi de arama motoru sıralamalarını yardımcı olacaktır.
Yönlendirme döngülerinden kaçınmak istiyorsanız, location.replace()
JavaScript işlevini kullanmalısınız .
Uygun bir istemci tarafı URL yönlendirme kodu şuna benzer (Internet Explorer 8 ve daha düşük bir düzeltmeyle ve gecikmeden):
<!-- 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 -->
<meta http-equiv="refresh"
, W3C tarafından neden kullanımdan kaldırıldığına dair ayrıntıları içerir .
Bir META "yönlendirmesi" kullanabilirsiniz:
<meta http-equiv="refresh" content="0; url=http://new.example.com/address" />
veya JavaScript yönlendirmesi (tüm kullanıcıların JavaScript'in etkin olmadığını unutmayın, bu nedenle onlar için her zaman bir yedekleme çözümü hazırlayın)
<script language="javascript">
window.location = "http://new.example.com/address";
</script>
Ancak seçeneğiniz varsa mod_rewrite kullanmanızı tavsiye ederim .
HTML kodunuzun <HEAD> ve </HEAD> etiketleri arasına aşağıdaki kodu yerleştirin:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">
Yukarıdaki HTML yönlendirme kodu, ziyaretçilerinizi anında başka bir web sayfasına yönlendirecektir. Bu content="0;
, tarayıcının yeniden yönlendirmeden önce beklemesini istediğiniz saniye sayısına değiştirilebilir.
Bir jQuery Mobile uygulaması ile çalışırken bir sorun buldum , burada bazı durumlarda Meta başlık etiketim düzgün bir şekilde yeniden yönlendirme elde edemedi (jQuery Mobile her sayfa için otomatik olarak başlıkları okumuyor, bu yüzden JavaScript'i buraya koymadıkça da etkisiz karmaşıklığı). Bu durumda en kolay çözümü, JavaScript yönlendirmesini doğrudan belgenin gövdesine koymak oldu:
<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>
Bu benim için her durumda işe yarıyor gibi görünüyor.
Tüm sayfa türleri için çalışan basit yol, yalnızca meta
kafaya bir etiket eklemektir :
<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>
JavaScript kullanmalısınız. Aşağıdaki kodu başlık etiketlerinize yerleştirin:
<script type="text/javascript">
window.location.assign("http://www.example.com")
</script>
HTTP Durum Kodu 301 veya 302 ile otomatik olarak yeniden yönlendirebilirsiniz.
PHP için:
<?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://www.redirect-url.com");
?>
Kullanıcı index.html giriş sayfası göreli url yönlendiren bir komut dosyası kullanın
<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>
Sadece iyi bir ölçü için:
<?php
header("Location: example@example.com", TRUE, 303);
exit;
?>
Komut dosyasının üzerinde yankı olmadığından emin olun, aksi takdirde yok sayılır. http://php.net/manual/en/function.header.php
Gövde etiketinin onload olayını kullanmanız yeterlidir:
<body onload="window.location = 'http://example.com/'">
5 saniyelik bir gecikme için jilet motoru :
<meta http-equiv="Refresh"
content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))">
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Redirect to a page</title>
</head>
<body onload="window.location.assign('http://example.com')">
</body>
</html>
Bunun için herhangi bir JavaScript koduna ihtiyacınız yoktur. Bunu <head>
HTML sayfasının bölümüne yazın :
<meta http-equiv="refresh" content="0; url=example.com" />
Sayfa 0 saniyede yüklenir yüklenmez sayfanıza gidebilirsiniz.
Onları anladığım kadarıyla, bu soru için şimdiye kadar gördüğüm tüm yöntemler eski konumu tarihe ekliyor gibi görünüyor. Sayfayı yeniden yönlendirmek, ancak geçmişte eski bir konuma sahip olmamak için replace
yöntemi kullanıyorum:
<script>
window.location.replace("http://example.com");
</script>
Bu, istediğim her şeye sahip bir yönlendirme çözümüdür, ancak kesip yapıştırmak için güzel bir temiz snippet'te bulamadı.
Bu snippet'in bir takım avantajları vardır:
Nasıl kullanılır:
Tüm siteyi taşıdıysanız, eski sunucuda orijinal siteyi durdurun ve kök klasörde varsayılan index.html dosyası olarak bu dosyayla başka bir site oluşturun. Site ayarlarını, herhangi bir 404 hatası bu index.html sayfasına yönlendirilecek şekilde düzenleyin. Bu, eski siteye bir alt sayfa sayfasına bağlantıyla erişen herkesi yakalar.
Şimdi açılış komut dosyası etiketine gidin ve eski site ile newSite web adreslerini düzenleyin ve saniye değerini gerektiği gibi değiştirin.
Web sitenizi kaydedin ve başlatın. İş bitti - kahve zamanı.
<!DOCTYPE html>
<html>
<head>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
<style>
body { margin: 200px; font: 12pt helvetica; }
</style>
</head>
<body>
</body>
<script type="text/javascript">
// Edit these to suit your needs.
var oldsite = 'http://theoldsitename.com'
var newSite = "https://thenewsitename.com";
var seconds = 20; // countdown delay.
var path = location.pathname;
var srch = location.search;
var uniq = Math.floor((Math.random() * 10000) + 1);
var newPath = newSite + path + (srch === '' ? "?" + uniq : srch + "&" + uniq);
document.write ('<p>As part of hosting improvements, the system has been migrated from ' + oldsite + ' to</p>');
document.write ('<p><a href="' + newPath + '">' + newSite + '</a></p>');
document.write ('<p>Please take note of the new website address.</p>');
document.write ('<p>If you are not automatically redirected please click the link above to proceed.</p>');
document.write ('<p id="dvCountDown">You will be redirected after <span id = "lblCount"></span> seconds.</p>');
function DelayRedirect() {
var dvCountDown = document.getElementById("dvCountDown");
var lblCount = document.getElementById("lblCount");
dvCountDown.style.display = "block";
lblCount.innerHTML = seconds;
setInterval(function () {
seconds--;
lblCount.innerHTML = seconds;
if (seconds == 0) {
dvCountDown.style.display = "none";
window.location = newPath;
}
}, 1000);
}
DelayRedirect()
</script>
</html>
<noscript>
JS devre dışı bırakılmışsa JavaScript kullanarak yeniden yönlendirin .
<script>
window.location.replace("https://google.com");
</script>
<noscript>
<a href="https://google.com">Click here if you are not redirected automatically.</a>
</noscript>
Bu kodu kullanın:
<meta http-equiv="refresh" content="0; url=https://google.com/" />
Lütfen dikkat: kafa etiketine koyun.
Javascript ile yapabilirsiniz:
location = "url";
Bunu kullanabilirsiniz
<meta http-equiv="refresh" content="0; url=http://newpage.com/" />