2012-11-13 26 views
6

क्या मैं .htaccess में एक्स रोबोट का उपयोग करके एक विशिष्ट पृष्ठ का पालन कर सकता हूं?एक्स-रोबोट्स नोन्डेक्स विशिष्ट पृष्ठ .htaccess

मुझे फ़ाइलों को बिना किसी प्रकार के फाइलों के लिए कुछ निर्देश मिल गए हैं, लेकिन मुझे एक पृष्ठ को नोइन्डेक्स के लिए निर्देश नहीं मिल रहा है, और मैंने अभी तक जो भी प्रयास किया है, वह काम नहीं किया है।

<FilesMatch "/index.php?route=news/headlines$"> 
Header set X-Robots-Tag "noindex, follow" 
</FilesMatch> 

अपने समय के लिए धन्यवाद:

http://www.examplesite.com.au/index.php?route=news/headlines 

यह वही है मैं अब तक की कोशिश की है है:

यह पृष्ठ मैं अनुक्रमणिका नहीं करने के लिए देख रहा हूँ है।

+0

'FilesMatch' तर्क एक नियमित अभिव्यक्ति है, इसलिए आपको शायद कुछ विशेष पात्रों जैसे' .' और '? 'से" भागना "चाहिए। मैं अभी इसका परीक्षण नहीं कर सकता, लेकिन मैं '/index\.php\?route=news/headlines$ "का परीक्षण करना चाहता हूं। –

+0

इस मामले को संभालना PHP में '.htaccess' की तुलना में बहुत आसान होगा; क्या आप अपने 'समाचार' नियंत्रक (यदि यह वास्तव में एक एमवीसी आर्किटेक्चर है) में शायद 'हेडरलाइन' कार्रवाई में 'हेडर' ('एक्स-रोबोट-टैग: नोइन्डेक्स, फॉलो करें') को कॉल नहीं कर सकता है? – lanzz

उत्तर

8

एक .htaccess फ़ाइल के भीतर से अनुरोध पैरामीटर से मिलान करना असंभव प्रतीत होता है। यहां आप जो मिलान कर सकते हैं उसकी एक सूची यहां दी गई है: http://httpd.apache.org/docs/2.2/sections.html

आपकी स्क्रिप्ट में ऐसा करना बहुत आसान होगा। आप PHP कोशिश पर चल रहे हैं:

header('X-Robots-Tag: noindex, follow'); 

आप आसानी से $ _GET पर स्थिति, REQUEST_URI निर्माण और इतने पर कर सकते हैं।

0

ध्यान दें कि आपको हेडर सेट करने के लिए सक्षम mod_headers मॉड्यूल की आवश्यकता होगी।

हालांकि अन्य लोगों ने कहा है, तो यह PHP टैग का उपयोग करना बेहतर लगता है। क्या यह काम नहीं करता है?

4
RewriteEngine on 
RewriteBase/

#set env variable if url matches 
RewriteCond %{QUERY_STRING} ^route=news/headlines$ 
RewriteRule ^index\.php$ - [env=NOINDEXFOLLOW:true] 

#only sent header if env variable set 
Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW 

FilesMatch पर काम करता है (स्थानीय) फ़ाइलें, नहीं यूआरएल। तो यह यूआरएल के केवल /index.php भाग से मेल खाने का प्रयास करेगा। <location> अधिक उपयुक्त होगा, लेकिन जहां तक ​​मैं प्रलेखन से पढ़ सकता हूं, यहां क्वेरीस्ट्रिंग की अनुमति नहीं है। तो मैं उपरोक्त समाधान के साथ समाप्त हुआ (मुझे वास्तव में यह चुनौती पसंद आया)। हालांकि PHP इसे रखने के लिए और अधिक स्पष्ट जगह होगी, लेकिन यह आपके ऊपर है।

समाधान के लिए mod_rewrite, और mod_headers आवश्यक है।

+0

यह पोस्ट भी देखें: http://stackoverflow.com/a/7864666/567986 – Gerben