Rediriger à partir D'une page HTML

est-il possible de configurer une page HTML de base pour rediriger vers une autre page en charge?

1385
demandé sur David Angulo 2011-03-23 23:58:29

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

Rediriger

Cela va vous permettre d'obtenir à l'endroit où vous allez avec un clic supplémentaire.

1952
répondu Valerij 2017-07-21 09:31:35

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.

1018
répondu Billy Moon 2017-12-08 14:11:16

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">
111
répondu amit_g 2013-04-19 18:32:46

je aussi ajouter un lien canonique à l'aide de votre SEO les gens:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
40
répondu lrkwz 2016-06-25 19:10:00

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

29
répondu RafaSashi 2018-07-11 08:45:31

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"
27
répondu Peter Olson 2015-09-30 19:05:07

Il serait préférable de mettre en place un redirection 301 . Voir L'article de Google Webmaster Tools 301 redirections .

26
répondu Alex K 2015-02-26 12:38:09

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 -->
24
répondu Patartics Milán 2018-07-11 21:37:33

, 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.

17
répondu Czechnology 2013-03-02 23:42:37

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>
14
répondu kkk 2016-06-25 19:08:31

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.

10
répondu Muhammad Saqib 2018-05-19 17:11:39

mettez le code suivant dans la section <head> :

<meta http-equiv="refresh" content="0; url=http://address/">
9
répondu Sebi 2013-04-19 18:28:25

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.

9
répondu Scotsman 2016-06-25 19:07:29

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>
8
répondu P. BANERJEE 2014-09-03 15:22:44

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>
7
répondu kriscross07 2013-11-13 22:25:49

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");
?>
7
répondu Vô Vị 2018-01-26 09:02:18

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

6
répondu Edward 2013-11-28 13:27:19

moteur de Rasoir pour un retard de 5 secondes:

<meta http-equiv="Refresh"
         content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))">
5
répondu JoshYates1980 2016-06-25 19:05:39
<!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>
5
répondu Pirate of Marmara 2017-07-10 02:35:43

il suffit D'utiliser l'événement onload de la balise body:

<body onload="window.location = 'http://example.com/'">
5
répondu pat capozzi 2018-05-19 17:14:52

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>
5
répondu Zolfaghari 2018-08-12 11:23:59

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.

4
répondu Yash Jain 2017-05-21 11:20:30

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>
3
répondu Paul Ogilvie 2018-05-19 17:15:44

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>&nbsp;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>
2
répondu Vanquished Wombat 2018-03-19 12:58:42

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.

-1
répondu AngelHotxxx 2018-03-05 09:11:56