مرحباً،
هل من الممكن إعادة توجيه جميع الصفحات التي تعرض خطأ 404 إلى الصفحة الرئيسية أو صفحة أخرى تلقائياً؟
مع خالص التقدير
مرحباً،
هل من الممكن إعادة توجيه جميع الصفحات التي تعرض خطأ 404 إلى الصفحة الرئيسية أو صفحة أخرى تلقائياً؟
مع خالص التقدير
نظرًا لأن Discourse لا يستخدم htaccess، لست متأكدًا من أين أبحث عن حل. أي مساعدة ستكون موضع تقدير ![]()
أعتقد أنه قد يكون بإمكانك إنشاء إضافة لتحقيق ذلك؟
قد يكون من المربك إعادة التوجيه على الفور، فلماذا لا تغير المسار 404 لإعادة التوجيه إلى الصفحة الرئيسية بعد مؤقت قصير مع رسالة مقابلة؟
قد ينجح ذلك، لكنني لا أعرف كيف أفعل ذلك ![]()
هل هناك أي إضافة لهذا؟
أشك في ذلك. يمكنك Marketplace
لا ينبغي استخدام Htaccess على أي حال، حتى لو كان هناك Apache2 أمام Discourse — وهو ليس كذلك.
يجعل Docker الحياة أكثر تعقيدًا
ولا أعرف كيفية التعامل معها. ولكن يمكنك وضع Nginx (أو أي خادم/وكيل عكسي آخر) أمام Discourse إذا أردت. وبعد ذلك، يجب أن يكون هذا النوع من إعادة التوجيه مهمة سهلة للغاية. يمكنك القيام بشيء كهذا:
ولكن لماذا ترغب في إعادة توجيه 404 إلى الصفحة الرئيسية في المقام الأول؟ إذا كان المستخدم يبحث عن شيء ما وحصل على الصفحة الرئيسية بدلاً من الصفحة المطلوبة أو 404، فهذا مربك بعض الشيء. وبعد ذلك سيحاول نفس المستخدم مرة أخرى ربما لأنه فعل شيئًا خاطئًا أو أن الموقع كان به مشكلة. غير ضروري تمامًا وهناك سبب يجعل كل موقع يعرض خطأ 404 بدلاً من إعادة توجيه غريبة.
أقوم بترحيل مدونتي على ووردبريس إلى Discourse. الآن بسبب اختلاف بنية الروابط، سيكون هناك الكثير من صفحات 404 بعد الترحيل. لا يمكنني تعيين إعادة توجيه لكل واحدة منها يدويًا، لذا أحتاج إلى حل للقيام بذلك تلقائيًا.
نعم، ولكن هذا ليس حلاً. هذا إصلاح سيء، لا شيء آخر. سيظل هيكل عنوان URL الخاص بك معطلاً ولكنك تقوم فقط بإخفائه. ولا، لا يمكنك نقل قيمة تحسين محركات البحث بهذه الطريقة ![]()
على أي حال - إذن لديك خادم هناك. حاول استخدامه؟
إذا كنت ستستخدم نطاقًا فرعيًا مختلفًا لموقعي Wordpress و Discourse، فمن المحتمل أن تتمكن من القيام بذلك من جانب خادم Wordpress.
من الممكن تعديل page_not_found.title (الأصل: “عذرًا! هذه الصفحة غير موجودة أو خاصة.”) - من المؤسف بالنسبة لك عدم وجود شيء مثل page_not_found.content الذي يسمح لك بشرح الموقف بالتفصيل.
هذا الخيار لا يتضمن أي نوع من إعادة التوجيه، إن لم أكن مخطئًا.
مهما كانت الروابط تشير إليها… هل سيتم ترحيلها إلى Discourse؟ على سبيل المثال، إذا كانت تلك الروابط تشير إلى منشورات مدونة، والتي تقوم بتحويلها إلى مواضيع، فيمكنك إنشاء روابط دائمة: Redirect old forum URLs to new Discourse URLs using permalinks
يمكنك أيضًا إعادة تعيين تلك الروابط إلى شيء آخر. بافتراض أن الروابط لها بعض التنسيق المشترك، يمكنك استخدام REGEX وأمر remap لاستبدالها:
remap [--global,--regex] FROM TO
مثال على كيفية استخدام الأمر:
discourse remap --regex "[\\/?color(=[^\\\]]*)*]" "" # إزالة أكواد bbcodes "color"
باستثناء أنه يجب القيام بذلك على خادم ووردبريس إذا أراد المرء إبقاء جوجل والمستخدمين سعداء.
تم تقسيم 5 مشاركات إلى موضوع جديد: كيف يمكنني إعادة التوجيه إلى الصفحة الرئيسية بعد حذف موضوع؟
يمكنك التعامل مع جميع صفحات 404 المعطلة إلى الصفحة الرئيسية أو صفحة أخرى باستخدام ميزة “تخصيص”.
انتقل إلى قسم تخصيص > سمات > إنشاء سمة جديدة > قم بتسمية السمة الخاصة بك على سبيل المثال إعادة توجيه 404 واضبط السمة الأساسية على الافتراضي.
ثم قم بإنشاء السمة الجديدة > تحرير CSS/HTML. في قسم HTML، قم بإنشاء مقتطف JavaScript سيتعامل مع إعادة التوجيه.
الصق هذا الرمز.
<script type="text/discourse-plugin">
api.onPageChange((url, title) => {
// إعادة التوجيه إلى الصفحة الرئيسية لجميع صفحات 404
if (url.includes('/404')) {
window.location.href = '/';
}
});
</script>
يرجى تعديل اسم صفحتك حسب حاجتك. اقرأ هذا إعادة توجيه عنوان URL القديم إلى عنوان URL جديد لـ Discourse