xhtml tags - إعادة توجيه من صفحة HTML




code w3school (21)

يجب عليك استخدام JavaScript. ضع التعليمة البرمجية التالية في علامات رأسك:

<script type="text/javascript">
 window.location.assign("http://www.example.com")
</script>

هل من الممكن إعداد صفحة HTML أساسية لإعادة التوجيه إلى صفحة أخرى عند التحميل؟


يمكنك إعادة التوجيه التلقائي بواسطة HTTP Status Code 301 or 302.

ل PHP:

<?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.redirect-url.com");
?>

يمكنني استخدام برنامج نصي يعيد توجيه المستخدم من index.html إلى home.html

<html>
  <head>
    <title>index.html</title>
  </head>
  <body onload="document.getElementById('lnkhome').click();">
    <a href="Home.html" id="lnkhome">Go to Home Page<a>
  </body>
</html>

هذا هو مجموع كل الإجابات السابقة بالإضافة إلى حل إضافي باستخدام HTTP Refresh Header عبر .htaccess

1. HTTP تحديث الرأس

أولاً ، يمكنك استخدام .htaccess لتعيين رأس تحديث مثل هذا

Header set Refresh "3"

هذا هو المكافئ "ثابت" باستخدام الدالة header() في PHP

header("refresh: 3;");

لاحظ أن هذا الحل لا يدعمه كل متصفح.

2. جافا سكريبت / jQuery

مع URL بديل:

<script>
    setTimeout(function(){location.href="http://example.com/alternate_url.html"} , 3000);
</script>

بدون عنوان URL بديل:

<script>
    setTimeout("location.reload(true);",timeoutPeriod);
</script>

عبر jQuery:

<script>
    window.location.reload(true);
</script>

3. تحديث ميتا

يمكنك استخدام تحديث التعريف عندما تكون الاعتمادات على JavaScript وعناوين إعادة التوجيه غير مرغوب فيها

مع عنوان URL بديل:

<meta http-equiv="Refresh" content="3; url=http://example.com/alternate_url.html">

بدون عنوان URL بديل:

<meta http-equiv="Refresh" content="3">

باستخدام <noscript> :

<noscript>
    <meta http-equiv="refresh" content="3" />
</noscript>

اختياريا

وفقًا لتوصية بيلي مون ، يمكنك تقديم رابط تحديث في حالة حدوث خطأ ما:

إذا لم تتم إعادة توجيهك تلقائيًا: <a href='http://example.com/alternat_url.html'>Click here</a>

مصادر



إذا كنت تتطلع إلى اتباع معايير الويب الحديثة ، فعليك تجنب عمليات إعادة توجيه HTML meta العادية. إذا لم تتمكن من إنشاء رمز من جانب الخادم ، فيجب عليك اختيار إعادة توجيه جافا سكريبت بدلاً من ذلك.

لدعم متصفحات JS المعوقين ، قم بإضافة خط إعادة توجيه HTML meta إلى عنصر noscript . تساعد إعادة توجيه meta المتداخلة المتداخلة مع العلامة canonical تصنيف محرك البحث الخاص بك أيضًا.

إذا كنت ترغب في تجنب تكرار عملية إعادة التوجيه ، فيجب استخدام وظيفة جافا سكريبت location.replace ().

يبدو رمز إعادة توجيه عنوان URL الصحيح من جانب العميل على هذا النحو (مع إصدار IE 8 وإصلاح أقل وبدون تأخير):

<!-- 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://.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://.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 ، ورمز JavaScript ، وسيتوفر رابط في حال وجوده.

<!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>

للتأكد من اكتمالها ، أعتقد أن أفضل طريقة ، إذا أمكن ، هي استخدام عمليات إعادة توجيه الخادم ، لذلك أرسل رمز الحالة 301 . هذا من السهل القيام به عبر ملفات .htaccess باستخدام Apache ، أو عبر العديد من الإضافات باستخدام WordPress . أنا متأكد من أن هناك أيضًا مكونات إضافية لجميع أنظمة إدارة المحتوى الرئيسية. كما أن cPanel يحتوي على تكوين سهل للغاية لعمليات إعادة التوجيه 301 إذا كان ذلك مثبتًا على الخادم الخاص بك.


لقد وجدت مشكلة أثناء العمل مع تطبيق jQuery Mobile ، حيث في بعض الحالات لن تحقق علامة رأس Meta الخاصة بي عملية إعادة توجيه بشكل صحيح (لا يقرأ jQuery Mobile رؤوس الصفحات تلقائيًا لكل صفحة ، لذا فإن وضع JavaScript هناك غير فعال أيضًا ما لم يتم التفافه في تعقيد). لقد وجدت أن الحل الأسهل في هذه الحالة هو إعادة توجيه جافا سكريبت مباشرة إلى نص المستند ، على النحو التالي:

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

هذا يبدو للعمل في كل حالة بالنسبة لي.


ضع التعليمات البرمجية التالية في المقطع <head> :

<meta http-equiv="refresh" content="0; url=http://address/">

استخدم هذا الكود:

<meta http-equiv="refresh" content="0; url=https://google.com/" />

يرجى الانتباه: ضعها في علامة الرأس.


جافا سكريبت

<script language="javascript">
    window.location.href = "http://example.com"
</script>

علامة متغيرة

<meta http-equiv="refresh" content="0;url=http://example.com">

وأود أيضًا أن أضيف رابطًا قانونيًا لمساعدة الأشخاص على SEO الخاصة بك:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>

ضع التعليمة البرمجية التالية بين علامات HTML وعلاماتها.

<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">

ستعيد شفرة إعادة توجيه HTML أعلاه توجيه الزوار إلى صفحة ويب أخرى على الفور. قد يتم تغيير content="0; إلى عدد الثواني التي تريد أن ينتظرها المتصفح قبل إعادة التوجيه.


بقدر ما أفهمها ، يبدو أن جميع الطرق التي رأيتها بنفسي لهذا السؤال تضيف الموقع القديم إلى التاريخ. لإعادة توجيه الصفحة ولكن ليس لديك الموقع القديم في السجل ، أستخدم طريقة replace :

<script>
    window.location.replace("http://example.com");
</script>


<!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>

هذا هو حل إعادة التوجيه مع كل ما أردت ولكن لا يمكن العثور عليها في قصاصة نظيفة لطيفة لقص ولصق.

يحتوي هذا المقتطف على عدد من المزايا:

  • يتيح لك التقاط والاحتفاظ بأي paramstring querys الناس على عناوينهم
  • يجعل الرابط unqiue لتجنب التخزين المؤقت غير المرغوب فيه
  • يتيح لك إبلاغ المستخدمين بأسماء المواقع القديمة والجديدة
  • يظهر العد التنازلي الاستقرار
  • يمكن استخدامه لعمليات إعادة التوجيه ذات الارتباطات العميقة حيث يحتفظ بالمعلمات

كيف تستعمل:

إذا قمت بنقل موقع بأكمله ، فقم بإيقاف الموقع الأصلي على الخادم القديم وإنشاء آخر بهذا الملف كملف index.html الافتراضي في المجلد الجذر. قم بتحرير إعدادات الموقع بحيث تتم إعادة توجيه أي خطأ 404 إلى هذه الصفحة index.html. هذا يمسك أي شخص يصل إلى الموقع القديم مع وصلة إلى صفحة المستوى الفرعي الخ.

انتقل الآن إلى علامة النص البرمجي الافتتاحية وقم بتحرير عناوين مواقع الويب القديمة والجديدة ، وقم بتغيير قيمة الثواني حسب الحاجة.

حفظ وبدء موقع الويب الخاص بك. المهمة المنجزة - الوقت لتناول القهوة.

<!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>


لست بحاجة إلى أي شفرة جافا سكريبت لهذا. اكتب هذا في قسم <head> في صفحة HTML:

<meta http-equiv="refresh" content="0; url=example.com" />

بمجرد تحميل الصفحة في 0 ثانية ، يمكنك الانتقال إلى صفحتك.



يمكنك استخدام "إعادة توجيه" META :

<meta http-equiv="refresh" content="0; url=http://new.example.com/address" />

أو إعادة توجيه جافا سكريبت (لاحظ أنه ليس جميع المستخدمين لديهم جافا سكريبت مُمكَّن لهم ، لذا احرص دائمًا على إعداد حل النسخ الاحتياطي لهم)

<script language="javascript">
  window.location = "http://new.example.com/address";
</script>

لكنني أوصي باستخدام mod_rewrite ، إذا كان لديك الخيار.


هل يلزم بالفعل تحويل HTML إلى PDF إلى جانب الخادم باستخدام PHP؟

جئت للتو عبر jsPDF ، وهو حل من جانب العميل باستخدام HTML5 / JavaScript. رمز MIT المرخص على GitHub أيضًا.





html xhtml meta html-head