2012-11-13 33 views
6

我可以使用x機器人在.htaccess中noindex,關注'特定頁面嗎?X-Robots noindex .htaccess中的特定頁面

我發現了一些關於noindexing類型的文件的說明,但是我找不到指令給單個頁面的noindex,而我迄今爲止嘗試過的方法沒有奏效。

這是我期待NOINDEX頁:

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

這是我到目前爲止已經試過:

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

感謝您的時間。

+0

'FilesMatch'參數是一個正則表達式,因此您可能必須「轉義」一些特殊字符,如'.'和'?'。我現在無法測試,但我想測試''/index\.php\?route=news/headlines$''。 –

+0

在PHP中處理這種情況比在.htaccess中容易得多。你是不是可以在你的'news'控制器的'headlines'動作中調用'header('X-Robots-Tag:noindex,follow')'(如果這確實是一個MVC架構)? – 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工作在(本地)文件,而不是URL。所以它會嘗試僅匹配url的/index.php部分。 <location>會更合適,但據我可以從文檔中讀取,querystrings不允許在這裏。所以我結束了上述解決方案(我真的很喜歡這個挑戰)。雖然php會是更明顯的地方,但這取決於你。

解決方案當然需要mod_rewrite和mod_headers。

+0

也看到這篇文章:http://stackoverflow.com/a/7864666/567986 – Gerben