क्या फ़ाइलें ..txt और साइटमैप। Xml .htaccess रीडायरेक्ट के माध्यम से गतिशील हो सकती हैं?


13

मेरे पास एक बहुभाषी और बहुपद स्थल है। यह एक अद्वितीय CMS इंस्टॉलेशन (Drupal) से चलता है, इसलिए मेरे पास एक रूट डायरेक्टरी है। इसलिए अगर मेरे पास एक स्थिर रोबोट है। तो, मैं केवल एक ही डोमेन के लिए फाइलें दिखा सकता हूं, जहां तक ​​मुझे पता है।

क्या मैं .htaccess में लाइन लगा सकता था

Redirect 301 /robots.txt /robots.php

(या समतुल्य निर्देश, और कृपया, यदि कोई अनुमति दी जाए तो)

इसलिए यह एक डायनामिक php फ़ाइल पर रीडायरेक्ट करता है, जहां मैं अलग-अलग सेवा कर सकता हूं $_SERVER['HTTP_HOST']?

और sitemap.xml के लिए एक ही सवाल है , इसलिए मैं एक गतिशील साइटमैप की सेवा कर सकता हूं। पीपीपी जो प्रत्येक अलग डोमेन के लिए अलग-अलग लिंक को इंगित करता है।

.Txt और .xml का उपयोग न करने की समस्या, जैसा कि उल्लेख किया गया है, कि सभी डोमेन सर्वर कंप्यूटर में एक ही भौतिक निर्देशिका साझा करते हैं।


जवाबों:


12

आप किसी भी फाइल को डायनामिक बना सकते हैं। ऐसा करने का सबसे अच्छा तरीका पुनर्निर्देश नहीं है, लेकिन फिर से लिखना नियमों के माध्यम से है।

RewriteRule ^robots\.txt$  /robots.php [L]

इस तरह, आप इसे एक गतिशील स्क्रिप्ट के साथ पावर करते हैं, लेकिन URL नहीं बदलता है। अधिकांश क्रॉलर (Googlebot सहित) robots.txt के लिए रीडायरेक्ट का पालन करेंगे , लेकिन यदि आप रीडायरेक्ट का परिचय देते हैं तो कुछ क्रॉलर भ्रमित हो जाएंगे।

ध्यान दें कि भले ही आप इसे पीएचपी साथ शक्ति, अपनी robots.txt चाहिए दिखाई प्रत्येक डोमेन के लिए प्रत्येक क्रॉलर को स्थिर किया जाना है। अलग-अलग डोमेन के लिए अलग-अलग सामग्री या अलग-अलग उपयोगकर्ता एजेंटों के लिए भी सेवा करना ठीक है। हालाँकि, विभिन्न सामग्री को बेतरतीब ढंग से परोसना, या दिन के समय के आधार पर वास्तव में खोज इंजन क्रॉलर को भ्रमित कर सकते हैं और आपके एसईओ को गड़बड़ कर सकते हैं।


साइटमैप नाम के लिए ठीक है, लेकिन आप चाहते हैं। आप उन लोगों को पुनर्निर्देशित कर सकते हैं, या उन्हें एक ही URL पर गतिशील रूप से बिजली देने के लिए एक पुनर्लेखन नियम का उपयोग कर सकते हैं। आप उन्हें पसंद भी कर सकते हैं

  • साइट एक sitemap.xml
  • साइट-बी-sitemap.xml
  • साइट-सी sitemap.xml

फिर उन्हें robots.txt में देखें :

Sitemap: http://www.example.com/example-sitemap.xml

या उन्हें अपने वेबमास्टर टूल या खोज कंसोल के माध्यम से मैन्युअल रूप से खोज इंजन में सबमिट करें।


आपकी प्रतिक्रिया के लिए दोनों को धन्यवाद। कृपया ठीक करें कि एक टाइपो क्या हो सकता है, यह w3d निर्देश है जो काम करता है, इसलिए कोड RewriteRule ^robots\.txt$ robots.php [L]बिना प्रतीक के होना चाहिए ।
सीजर

हां, स्लैश वाला संस्करण आपकी Apache.conf फ़ाइल के लिए उपयुक्त होगा। .Htaccess के लिए, आपको इसे छोड़ने की आवश्यकता है। मैंने .htaccess के लिए उपयुक्त संस्करण को शामिल करने के लिए उत्तर को संपादित किया है।
स्टीफन Ostermiller

@ सीजर पैटर्न पर स्लैश उपसर्ग (यानी। ^/robots\.txt$) आवश्यक होगा यदि यह निर्देश सर्वर कॉन्फ़िगरेशन में था, लेकिन हां, यह प्रति-निर्देशिका .htaccess फ़ाइलों में मेल नहीं खाएगा। प्रतिस्थापन (यानी। /robots.php) पर स्लैश उपसर्ग इस मामले में वैकल्पिक है।
13

5

हां, उसी तरह कोई भी अनुरोध "गतिशील" हो सकता है।

हालाँकि, आप रीडायरेक्ट नहीं करेंगे (आपके उदाहरण कोड में), आपको mod_rewrite का उपयोग करके आंतरिक रूप से फिर से लिखना चाहिए । (जो द्रुपाल शायद पहले से ही कर रहा है।)

उदाहरण के लिए, अपनी रूट .htaccess फ़ाइल में:

RewriteEngine On
RewriteRule ^robots\.txt$ robots.php [L]

RewriteEngine केवल एक बार घटित होना चाहिए (हालाँकि कई बार ऐसा होता है तो वास्तव में कोई फर्क नहीं पड़ता)।

आपको बस यह सुनिश्चित करना है कि यह आपके .htaccess फ़ाइल में किसी अन्य निर्देश के साथ संघर्ष न करे। तो, यह संभवतः आपके सामने के नियंत्रक से पहले फ़ाइल की शुरुआत के पास होना चाहिए ।


4

साइटमैप फ़ाइल को गतिशील बनाना ठीक है - यह आपके साइटमैप को ऑटो-अपडेट करने का एक अच्छा तरीका है।

Robots.txt फ़ाइल को डायनामिक बनाना (एक ही होस्ट के लिए! अलग-अलग होस्ट के लिए ऐसा करना अनिवार्य रूप से उनमें से प्रत्येक के लिए एक सामान्य रोबो.टेक्स फ़ाइल है।) संभावित रूप से समस्याओं का कारण होगा: साइट से URL क्रॉल होने पर हर बार क्रॉल नहीं किया जाता है। , इसलिए ऐसा हो सकता है कि "गलत" संस्करण कैश हो। उदाहरण के लिए, यदि आप अपने रोबॉट्स। टेक्स्ट फ़ाइल ब्लॉक को व्यवसाय के घंटों के दौरान क्रॉल करते हैं, तो संभव है कि यह तब कैश हो जाए, और एक दिन के लिए पीछा किया जाए - जिसका अर्थ है कि कोई भी चीज़ क्रॉल नहीं होती (या वैकल्पिक रूप से, जब क्रॉलिंग की अनुमति हो तो कैश की जाती है)। Google उदाहरण के लिए, अधिकांश साइटों के लिए दिन में एक बार robots.txt फ़ाइल को क्रॉल करता है।


मुझे यहाँ स्थैतिक या गतिशील में कोई अंतर नहीं दिखता है। मैं अलग-अलग होस्ट के अनुसार विभिन्न संस्करणों की पेशकश करने के लिए डायनामिक हिस्से का भी उपयोग करूंगा, लेकिन क्योंकि मेजबान सभी कंप्यूटर सर्वर में एक ही भौतिक निर्देशिका को साझा करते हैं, जो कि robots1.txt, robots2.txt, robots3.txt (संख्याओं के होने का एक तरीका है अर्थ है कि हम किस क्षेत्र में हैं)।
सेसर

मुझे नहीं लगता कि यहां गतिशील का मतलब है कि वे हर बार अलग-अलग सामग्री परोसना चाहते हैं। वे बस इसे PHP के माध्यम से शक्ति देना चाहते हैं ताकि वे PHP कोड में होस्ट नाम के आधार पर निर्णय ले सकें। मैं अक्सर अलग-अलग उपयोगकर्ता एजेंटों को विभिन्न नियमों की सेवा करने के लिए robots.txt को गतिशील बनाता हूं।
स्टीफन Ostermiller

2
हाँ, जैसा कि मैंने उल्लेख किया है, कई मेजबानों के लिए करना अनिवार्य रूप से प्रति मेजबान अलग-अलग robots.txt फ़ाइलों की तरह है, जो ठीक है। हालाँकि, हम कभी-कभी साइटों को डायनामिक रोबॉट्स.टेक्स फ़ाइल का उपयोग करके दिन के समय तक क्रॉलिंग को नियंत्रित करने की कोशिश करते देखते हैं - जो बहुत सारी समस्याओं का कारण बनता है।
जॉन मुलर

अच्छी बात। मैंने अपना स्वीकृत उत्तर एक चेतावनी के साथ संपादित किया है, जो कि robots.txt को बहुत गतिशील नहीं बनाता है।
स्टीफन Ostermiller

0

Sitemap.php बनाने की कोई आवश्यकता नहीं है क्योंकि: 1. प्रत्येक भाषा के लिए आप एक अलग साइटमैप। Xml फ़ाइल चला सकते हैं और प्रत्येक को खोज इंजन कंसोल में निर्दिष्ट कर सकते हैं। 2. मानक साइटमैप फ़ाइलों को हाल की सामग्री को शामिल करने के लिए नियमित रूप से लिखा जा सकता है और यह उन्हें एक तरह से गतिशील बनाता है - इसके लिए .php की आवश्यकता नहीं है। यह मानक अद्यतन .xml के साथ एक ही फ़ाइल को फिर से बनाने के लिए आंतरिक अद्यतन तंत्र और क्रॉन पर निर्भर है

Sitemap.xml फ़ाइलें स्थिर हैं और केवल अपडेट उन्हें गतिशील बनाते हैं - वे वास्तविक समय में अपडेट नहीं करते हैं। यह संभव है कि उन्हें हर मिनट फिर से लिखा जाए, लेकिन इसकी कोई आवश्यकता नहीं है क्योंकि: 1. Google अंतिम सबमिशन के बाद 1 घंटे से कम समय में इसकी जांच नहीं करेगा। जब साइटमैप की फाइलें बड़ी हो जाती हैं, तो उन्हें फिर से लिखना अक्सर सर्वर प्रदर्शन kaput कर देगा।

जब बड़ी मात्रा में डेटा होता है और यह साइटमैप फ़ाइल को 50mb से बड़ा बनाता है, तो कई साइटमैप वाले सिस्टम की आवश्यकता होती है। इसका मतलब है कि साइटमैप 2,3 ... .xml मुख्य फ़ाइल की सूची में जोड़ देगा, लेकिन इन फ़ाइलों में सामग्री भी तब तक बनी रहती है जब तक कि इन फ़ाइलों को फिर से बनाया नहीं जाता (उदाहरण के लिए क्रोन द्वारा)।

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

मैं किसी साइटमैप का उपयोग करने वाले किसी भी पेशेवरों के बारे में नहीं सोच सकता। यह अच्छा नहीं होगा, क्योंकि इन फ़ाइलों का उपयोग करने के लिए अन्य बेहतर / उचित तरीके हैं।


डायनामिक को प्राथमिकता दी जा सकती है कुछ कारण: डायनामिक रूप से कोई भी नहीं लेता है, जबकि साइटमैप बहुत सारे डिस्क स्थान लेता है। साइटमैप को अद्यतित रखने की आवश्यकता है और गतिशील साइटमैप ऐसा करने का एक आसान तरीका हो सकता है।
स्टीफन Ostermiller
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.