Rediriger à partir D'une page HTML
est-il possible de configurer une page HTML de base pour rediriger vers une autre page en charge?
25 réponses
essayez d'utiliser:
<meta http-equiv="refresh" content="0; url=http://example.com/" />
Note: placez-le dans la section de tête.
en outre pour les navigateurs plus anciens si vous ajoutez un lien rapide dans le cas où il ne se rafraîchit pas correctement:
<p><a href="http://example.com/">Redirect</a></p>
apparaîtra comme
Cela va vous permettre d'obtenir à l'endroit où vous allez avec un clic supplémentaire.
j'utiliserais à la fois meta , et code JavaScript et j'aurais un lien juste au cas où.
<!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>
pour être complet, je pense que la meilleure façon, si possible, est d'utiliser les redirections du serveur, donc envoyer un 301 code de statut. Cela est facile à faire via .htaccess
des fichiers en utilisant Apache , ou via de nombreux plugins en utilisant WordPress . Je suis sûr qu'il y a aussi des plugins pour tous les principaux systèmes de gestion de contenu. En outre, cPanel a la configuration très facile pour 301 redirections si vous avez cela installé sur votre serveur.
JavaScript
<script language="javascript">
window.location.href = "http://example.com"
</script>
de la balise Meta
<meta http-equiv="refresh" content="0;url=http://example.com">
il s'agit d'un résumé de toutes les réponses précédentes plus une solution supplémentaire en utilisant L'en-tête HTTP Refresh via .htaccess
1. En-tête de rafraîchissement HTTP
tout d'Abord, vous pouvez utiliser .htaccess pour définir un en-tête de rafraîchissement comme ceci
Header set Refresh "3"
c'est l'équivalent "statique" de l'utilisation de la fonction header()
dans PHP
header("refresh: 3;");
notez que cette solution n'est pas supportée par tous les navigateurs.
2. JavaScript
avec une alternative URL :
<script>
setTimeout(function(){location.href="http://example.com/alternate_url.html"} , 3000);
</script>
Sans URL alternative:
<script>
setTimeout("location.reload(true);",timeoutPeriod);
</script>
Via jQuery:
<script>
window.location.reload(true);
</script>
3. Meta Refresh
vous pouvez utiliser meta rafraîchir lorsque les dépendances sur les en-têtes JavaScript et redirect sont indésirables
avec une URL alternative:
<meta http-equiv="Refresh" content="3; url=http://example.com/alternate_url.html">
Sans URL alternative:
<meta http-equiv="Refresh" content="3">
par <noscript>
:
<noscript>
<meta http-equiv="refresh" content="3" />
</noscript>
facultatif
comme recommandé par Billy Moon, vous pouvez fournir un lien de rafraîchissement en cas de problème:
si vous n'êtes pas redirigé automatiquement: <a href='http://example.com/alternat_url.html'>Click here</a>
ressources
la balise meta suivante, placée entre l'intérieur de la tête, indiquera au navigateur de rediriger:
<meta http-equiv="Refresh" content="seconds; url=URL">
remplacer secondes par le nombre de secondes à attendre avant qu'il redirige, et remplacer URL avec L'URL que vous voulez qu'il rediriger.
alternativement, vous pouvez rediriger avec JavaScript. Placez ceci à l'intérieur d'une étiquette de script n'importe où sur la page:
window.location = "URL"
Il serait préférable de mettre en place un redirection 301 . Voir L'article de Google Webmaster Tools 301 redirections .
si vous êtes impatient de suivre les normes modernes du web, vous devez éviter les méta redirections HTML simples. Si vous ne pouvez pas créer de code côté serveur, vous devez choisir redirection JavaScript à la place.
pour prendre en charge les navigateurs désactivés par JavaScript, ajouter une ligne de méta-redirection HTML à un élément noscript
. La redirection de méta imbriquée noscript
combinée à la balise canonical
aidera aussi votre classement de moteur de recherche.
si vous souhaitez éviter les boucles de redirection, vous devez utiliser la fonction JavaScript location.replace()
.
un bon côté client redirection D'URL le code ressemble à ceci (avec un Internet Explorer 8 et plus bas fixer et sans délai):
<!-- 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 -->
, Vous pouvez utiliser un MÉTA "rediriger":
<meta http-equiv="refresh" content="0; url=http://new.example.com/address" />
ou JavaScript redirect (notez que tous les utilisateurs n'ont pas JavaScript activé alors préparez toujours une solution de sauvegarde pour eux)
<script language="javascript">
window.location = "http://new.example.com/address";
</script>
mais je recommande plutôt d'utiliser mod_rewrite , si vous avez l'option.
dès que la page se charge, la fonction init
est activée et la page est redirigée:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<script>
function init()
{
window.location.href = "www.wherever.com";
}
</script>
</head>
<body onload="init()">
</body>
</html>
placez le code suivant entre les balises
et de votre code HTML:<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">
le code de redirection HTML ci-dessus redirigera vos visiteurs vers une autre page Web instantanément. Le content="0;
peut être modifié en nombre de secondes que vous voulez que le navigateur attende avant de rediriger.
mettez le code suivant dans la section <head>
:
<meta http-equiv="refresh" content="0; url=http://address/">
j'ai trouvé un problème en travaillant avec une application jQuery Mobile , où dans certains cas ma balise Meta header n'atteindrait pas une redirection correctement (jQuery Mobile ne lit pas automatiquement les en-têtes pour chaque page donc mettre JavaScript il est également inefficace à moins de l'envelopper dans la complexité). J'ai trouvé que la solution la plus simple dans ce cas était de placer la redirection JavaScript directement dans le corps du document, comme suit:
<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>
Cela semble fonctionner dans tous les cas pour moi.
la manière simple qui fonctionne pour tous les types de pages est juste d'ajouter une étiquette meta
dans la tête:
<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>
vous devez utiliser JavaScript. Placez le code suivant dans vos étiquettes de tête:
<script type="text/javascript">
window.location.assign("http://www.example.com")
</script>
vous pouvez Auto rediriger par le code de statut HTTP 301 ou 302.
pour PHP:
<?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://www.redirect-url.com");
?>
pour faire bonne mesure:
<?php
header("Location: example@example.com", TRUE, 303);
exit;
?>
assurez-vous qu'il n'y a pas d'écho au-dessus du script Sinon il sera ignoré. http://php.net/manual/en/function.header.php
moteur de Rasoir pour un retard de 5 secondes:
<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>
il suffit D'utiliser l'événement onload de la balise body:
<body onload="window.location = 'http://example.com/'">
j'utilise un script qui redirige l'utilisateur de l'index.code html pour la Page de 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>
vous n'avez pas besoin de code JavaScript pour cela. Écrivez ceci dans la section <head>
de la page HTML:
<meta http-equiv="refresh" content="0; url=example.com" />
dès Que la page se charge en 0 secondes, vous pouvez aller à votre page.
pour autant Que je sache, toutes les méthodes que j'ai vu jusqu'à présent, pour cette question, semblent ajouter à l'ancien emplacement de l'histoire. Pour rediriger la page, mais n'ont pas l'ancien emplacement dans l'histoire, j'utilise le replace
la méthode:
<script>
window.location.replace("http://example.com");
</script>
il s'agit d'une solution de redirection avec tout ce que je voulais mais n'ai pas pu trouver dans un bon snippet propre à couper & coller.
cet extrait présente un certain nombre d'avantages:
- vous permet d'attraper et de conserver toutes les params querystring que les gens ont sur leur url
- rend le lien unqiue pour éviter la mise en cache non désirée
- vous permet d'informer les utilisateurs de l'ancien et du nouveau nom du site
- montre un compte à rebours réglable
- peut être utilisé pour créer des liens de redirections que conserve params
comment utiliser:
si vous avez migré un site entier, alors sur l'ancien serveur arrêter le site original et en créer un autre avec ce fichier comme index par défaut.fichier html dans le dossier racine. Modifiez les paramètres du site de sorte que toute erreur 404 soit redirigée vers cet index.la page html. Cela attrape quiconque accède à l'ancien site avec un lien vers une page de sous-niveau etc.
allez maintenant à la balise script d'ouverture et modifiez les adresses Web oldsite et newSite, et changez la valeur des secondes au besoin.
Sauvegardez et démarrez votre site web. Travail - le temps pour un café.
<!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>
utilisez ce code:
<meta http-equiv="refresh" content="0; url=https://google.com/" />
s'il vous Plaît prêter attention: mettre dans la balise head.