Как в htaccess правильно указать формат для REQUEST_URI

wlad2
На сайте с 17.07.2008
Offline
114
349

пытаюсь отловить таким кодом кусок URL .*printpage.* и закрыть от индексации через X-Robots-Tag

SetEnvIfNoCase REQUEST_URI .*printpage.* NOINDEXFOLLOW

итоговый урл в котором нужно отловить /forum/index.php?action=printpage;topic=14641.0

пытался разные форматы, единственный что у меня сработал в качестве проверки

SetEnvIfNoCase REQUEST_URI ^index.php$ NOINDEXFOLLOW

у кого с логикой получше помогите с форматом .*printpage.* плс

я убил часа 2 так и не понял как..

S
На сайте с 30.09.2016
Offline
459
#1

Это не REQUEST_URI. Это QUERY_STRING.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
J
На сайте с 20.02.2014
Offline
94
jkm
#2

Если апач версии >= 2.4

Header set X-Robots-Tag "noindex, nofollow" "expr= %{QUERY_STRING} =~ /printpage/"

В более старых версиях это можно реализовать с помощью mod_rewrite.

Header set X-Robots-Tag "noindex, nofollow" env=NOINDEXFOLLOW


RewriteEngine On

RewriteCond %{QUERY_STRING} printpage
RewriteRule ^ - [env=NOINDEXFOLLOW]

Но лучше проверку и добавление заголовков делать на стороне PHP header.

wlad2
На сайте с 17.07.2008
Offline
114
#3

jkm

этот код срабатывает, спасибо

Header set X-Robots-Tag "noindex, nofollow" "expr= %{QUERY_STRING} =~ /printpage/"

нижний нет, но скорее всего проблема у хостера.

пока не пойму как перечислить, ниже варианты не сработали)

... "expr= %{QUERY_STRING} =~ /printpage/printpage2/"

... "expr= %{QUERY_STRING} =~ /printpage/|printpage2/"

... "expr= %{QUERY_STRING} =~ (printpage|printpage2)"

гуглинг не помогает(

понял методом тыка вот так

/printpage|topicseen/

)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий