2012-11-13 6 views
6

.htaccess에서 x 로봇을 사용하여 특정 페이지를 '따라갈 수 없습니까?'.htaccess의 X- 로봇 noindex 특정 페이지

noindexing 형식의 파일에 대한 지침을 찾았지만 하나의 페이지에 noindex 명령을 찾을 수 없으며 지금까지 시도한 내용이 작동하지 않았습니다. 시간에 대한

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

감사 :

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

이것은 내가 지금까지 시도한 것입니다 :

내가 NOINDEX 찾고 있어요 페이지입니다.

+0

'FilesMatch' 인수는 정규 표현식이므로'.'과'?'와 같은 특수 문자를 "이스케이프"해야합니다. 지금 당장은 테스트 할 수 없지만''/index\.php\?route=news/headlines$ "'테스트하고 싶습니다. –

+0

이 케이스를 다루는 것은 PHP에서'.htaccess'보다 훨씬 쉽습니다; 'header ('X-Robots-Tag : noindex, follow ')'를'news' 컨트롤러의 headlines 액션에서 호출 할 수 있습니까? – lanzz

답변

8

.htaccess 파일 내에서 요청 매개 변수를 일치시키는 것은 불가능한 것처럼 보입니다. 다음과 일치시킬 수있는 목록이 있습니다. http://httpd.apache.org/docs/2.2/sections.html

스크립트에서 훨씬 쉽게 수행 할 수 있습니다. 당신은 PHP의 시도에서 실행하는 경우 : 당신은 쉽게 등등 $ _GET에 조건 REQUEST_URI를 구축 할 수

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

.

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>이 더 적절할 것이지만, 문서에서 읽을 수있는 한, 쿼리 스트링은 허용되지 않습니다. 그래서 위의 솔루션으로 끝났습니다 (저는이 도전을 정말 좋아했습니다). php가 이것을두기에 더 분명한 곳이긴하지만, 그것은 당신에게 달려 있습니다.

해결 방법에는 mod_rewrite와 mod_headers가 필요합니다.

+0

이 게시물을 참조하십시오 : http://stackoverflow.com/a/7864666/567986 – Gerben