redirect जेकिल और गिटहब पेजेस में पुराने पृष्ठों के पुनर्निर्देशन के लिए सबसे अच्छा तरीका क्या है?




github jekyll (7)

सबसे अच्छा समाधान <meta http-equiv="refresh" और <link rel="canonical" href=

यह बहुत अच्छी तरह से काम करता है, Google Bot ने पदों को खोए बिना नए लिंक के तहत अपनी पूरी वेबसाइट को दोबारा बनाया। इसके अलावा उपयोगकर्ताओं को तुरंत नए पदों पर रीडायरेक्ट कर दिया जाता है।

<meta http-equiv="refresh" content="0; url=http://konradpodgorski.com/blog/2013/10/21/how-i-migrated-my-blog-from-wordpress-to-octopress/">
<link rel="canonical" href="http://konradpodgorski.com/blog/2013/10/21/how-i-migrated-my-blog-from-wordpress-to-octopress/" />

<meta http-equiv="refresh" का उपयोग करके प्रत्येक विज़िटर को नई पोस्ट पर रीडायरेक्ट किया जाएगा। Google Bot के लिए, यह <link rel="canonical" href= 301 रीडायरेक्ट के रूप में व्यवहार करता है, प्रभाव यह है कि आप अपने पृष्ठों को पुनः प्राप्त कर लेते हैं और यही वह है जो आप चाहते हैं।

मैंने पूरी प्रक्रिया का वर्णन किया कि मैंने अपना ब्लॉग वर्डप्रेस से ऑक्टोप्रेस तक कैसे स्थानांतरित किया। http://konradpodgorski.com/blog/2013/10/21/how-i-migrated-my-blog-from-wordpress-to-octopress/#redirect-301-on-github-pages

मेरे पास github पृष्ठों पर ब्लॉग है - jekyll

यूआरएल रणनीति प्रवासन को हल करने का सबसे अच्छा तरीका क्या है?

मैंने पाया कि आम तौर पर सबसे अच्छा अभ्यास एचटीएसीएसी बना रहा है

Redirect 301 /programovani/2010/04/git-co-to-je-a-co-s-tim/ /2010/04/05/git-co-to-je-a-co-s-tim.html

लेकिन यह गिथूब के साथ काम नहीं करता है। मुझे मिला एक और समाधान रेक कार्य बना रहा है, जो पुनर्निर्देशन पृष्ठों को उत्पन्न करेगा। लेकिन चूंकि यह एक एचटीएमएल है, यह 301 हेड भेजने में सक्षम नहीं है, इसलिए एसई क्रॉलर इसे पुनर्निर्देशन के रूप में नहीं पहचान पाएंगे।


चूंकि जिथब 301 रीडायरेक्ट (जो आश्चर्यजनक नहीं है) की अनुमति नहीं देता है, इसलिए आपको अपनी नई यूआरएल संरचना (और एक खोज इंजन हिट लेना) या यूआरएल को जिस तरह से छोड़ना है, उसे छोड़ने के बीच निर्णय लेना होगा। मेरा सुझाव है कि आप आगे बढ़ें और आगे बढ़ें। सर्च इंजन चिप्स को गिरने दें जहां वे हो सकते हैं। यदि कोई व्यक्ति खोज इंजन के माध्यम से आपके पुराने लिंक में से किसी एक को हिट करता है, तो उसे नए स्थान पर रीडायरेक्ट कर दिया जाएगा। समय के साथ, खोज इंजन आपके परिवर्तन उठाएंगे।

मामलों की मदद करने के लिए आप कुछ कर सकते हैं Sitemap बनाना जहां आप केवल अपने नए पेज सूचीबद्ध करते हैं, न कि पुराने। यह नए यूआरएल के साथ पुराने यूआरएल के प्रतिस्थापन को तेज करना चाहिए। इसके अतिरिक्त, यदि आपके सभी पुराने यूआरएल आपकी 'प्रोग्रामोनी' निर्देशिका में हैं, तो आप भविष्य में क्रॉल को बताने के लिए robots.txt फ़ाइल का भी उपयोग कर सकते हैं, उन्हें उस निर्देशिका को अनदेखा करना चाहिए। उदाहरण के लिए:

User-agent: *
Disallow: /programovani/

खोज इंजनों के बदलावों को पकड़ने में थोड़ी देर लग जाएगी। यह वास्तव में एक बड़ा सौदा नहीं है। जब तक पुराने यूआरएल अभी भी मौजूद हैं और वास्तविक लोगों को सक्रिय पृष्ठों पर रीडायरेक्ट करते हैं, तो आप ठीक होंगे।


क्या आपने जेकिल एलियास जेनरेटर प्लगइन की कोशिश की है?

आपने पोस्ट के वाईएएमएल फ्रंट मामले में उपनाम यूआरएल डाल दिया है:

---
  layout: post
  title: "My Post With Aliases"
  alias: [/first-alias/index.html, /second-alias/index.html]
---

जब कोई उपयोगकर्ता उपनाम यूआरएल में से किसी एक पर जाता है, तो उसे मेटा टैग रीफ्रेश के माध्यम से मुख्य यूआरएल पर रीडायरेक्ट किया जाता है:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="refresh" content="0;url=/blog/my-post-with-aliases/" />
  </head>
</html>

विषय पर इस ब्लॉग पोस्ट को भी देखें।


सबसे अच्छा विकल्प है कि अपने पुराने ब्लॉग से मेल खाने के लिए _config.yml में परमालिंक प्रारूप को सेट करके यूआरएल परिवर्तनों को पूरी तरह से टालना है।

इसके अलावा, सबसे पूरा समाधान पुनर्निर्देशित पृष्ठों को उत्पन्न कर रहा है, लेकिन यह आवश्यक रूप से प्रयास के लायक नहीं है। मैं अपने 404 पेज को थोड़ा सा दोस्ताना बना रहा, जावास्क्रिप्ट को सही नए यूआरएल का अनुमान लगाने के लिए। यह खोज के लिए कुछ भी नहीं करता है, लेकिन वास्तविक उपयोगकर्ता उस पृष्ठ पर जा सकते हैं, जिसे वे ढूंढ रहे थे और बाकी कोड में समर्थन करने के लिए कोई विरासत सामग्री नहीं है।

http://tqcblog.com/2012/11/14/custom-404-page-for-a-github-pages-jekyll-blog/


जेकिल पिछले कुछ महीनों में कुछ प्रमुख अपडेटों से गुजर चुका है, इसलिए शायद यह सवाल तब संभव नहीं था जब यह प्रश्न मूल रूप से पोस्ट किया गया था ...

जैकिल आपके ब्लॉग पोस्ट के वाईएएमएल फ्रंट-केस सेक्शन में परमालिंक विशेषता का समर्थन करता है। आप उस यूआरएल को निर्दिष्ट कर सकते हैं जिसे आप अपनी पोस्ट चाहते हैं और जेकिल आपकी साइट उत्पन्न करते समय (फ़ाइल नाम के बजाए) इसका उपयोग करेगा।

---
title: My special blog post
permalink: /programovani/2010/04/git-co-to-je-a-co-s-tim
---
My blog post markdown content

यह समाधान आपको .htaccess के माध्यम से वास्तविक HTTP रीडायरेक्ट का उपयोग करने की अनुमति देता है - हालांकि, .htaccess शामिल कुछ भी नहीं GitHub पृष्ठों पर काम करेगा क्योंकि वे अपाचे का उपयोग नहीं करते हैं।

मई 2014 तक गिटहब help.github.com/articles/redirects-on-github-pages , लेकिन जेम-रीडायरेक्ट के अनुसार जेम दस्तावेज से वे अभी भी HTTP-REFRESH ( <meta> टैग का उपयोग करके) पर आधारित हैं, जिसके लिए पुनर्निर्देशन होने से पहले एक पृष्ठ लोड पूर्ण होना आवश्यक है।

मुझे <meta> दृष्टिकोण पसंद नहीं है, इसलिए मैंने अपाचे का उपयोग करके एक .htaccess फ़ाइल में वास्तविक HTTP 301 रीडायरेक्ट प्रदान करने वाले किसी भी व्यक्ति के लिए एक समाधान को मार दिया, जो प्री-जेनरेट जेकिल साइट परोसता है:

सबसे पहले, _config.yml include संपत्ति include करने के लिए .htaccess जोड़ें

include: [.htaccess]

इसके बाद, एक .htaccess फ़ाइल बनाएं और YAML फ्रंट केस को शामिल करना सुनिश्चित करें। उन डैश महत्वपूर्ण हैं क्योंकि अब जैकिल फ़ाइल को तरल, जैकील की templating भाषा के साथ पार्स करेगा:

---
---
DirectoryIndex index.html

RewriteEngine On
RewriteBase /

...

सुनिश्चित करें कि रीडायरेक्ट की आवश्यकता वाले आपकी पोस्ट में दो गुण हैं:

---
permalink: /my-new-path/
original: blog/my/old/path.php
---

अब। Htaccess में, बस एक लूप जोड़ें:

{% for post in site.categories.post %}
  RewriteRule ^{{ post.original }} {{ post.permalink }} [R=301,L]
{% endfor %}

जब भी आप साइट बनाते हैं, यह गतिशील रूप से .htaccess उत्पन्न करेगा, और आपकी कॉन्फ़िगरेशन फ़ाइल में include है यह सुनिश्चित करता है कि .htaccess इसे _site निर्देशिका में बनाता है।

RewriteRule ^blog/my/old/path.php /my-new-path/ [R=301,L]

वहां से, अपाचे का उपयोग करके _site सेवा करने के लिए आप पर _site । मैं सामान्य रूप से पूर्ण जेकील रेपो को एक गैर-वेबूट निर्देशिका में क्लोन करता हूं, फिर मेरा vhost _site फ़ोल्डर में एक _site :

ln -s /path/to/my-blog/_site /var/www/vhosts/my-blog.com

टाडा! अब अपाचे आपके आभासी रूट से _site फ़ोल्डर की सेवा कर सकता है, जो .htaccess- संचालित रीडायरेक्ट के साथ पूरा हो सकता है जो आपके इच्छित HTTP प्रतिक्रिया कोड का उपयोग करता है!

आप सुपर फैंसी भी प्राप्त कर सकते हैं और प्रत्येक पोस्ट के सामने के मामले में एक redirect प्रॉपर्टी का उपयोग redirect हैं ताकि यह निर्धारित किया जा सके कि आपके .htaccess लूप में कौन से रीडायरेक्ट कोड का उपयोग किया जाए।


जैसा कि अन्य ने उल्लेख किया है, सबसे अच्छा समाधान काम करने वाले यूआरएल को संरक्षित करना या पृष्ठों को डुप्लिकेट करना और एक canonical यूआरएल निर्दिष्ट करना canonical

चूंकि जिथब पेज सच्चे रीडायरेक्ट का समर्थन नहीं करते हैं, इसलिए मैंने अपनी साइट के पुराने डोमेन से 301 (स्थायी) रीडायरेक्ट को वापस करने के लिए rerouter पर rerouter सेट करना चुना है। मैंने यहां विवरणों का वर्णन किया है:

http://joey.aghion.com/simple-301-redirects/







github-pages