Вернуться   SEO форум - оптимизация и продвижение сайтов > Поисковая оптимизация > Индексация сайта

Важная информация
Индексация сайта - Robots.txt, sitemap (карта сайта), редирект, .htaccess, и т.д. Бан, поисковые фильтры, ранжирование (позиции).

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 31.03.2015, 15:38   #1
 
Аватар для perinot
 
Сообщений: 37
FR (активность): 274

Доп. информация
По умолчанию Автор темы Как в htaccess исключить некоторые урлы из 301го редира

здравствуйте. поставил в htaccess 301 редирект с сайта 1 на сайт 2

RewriteCond %{HTTP_HOST} ^сайт1$
RewriteRule ^(.*)$ http://сайт2/$1 [R=301,L]

чтобы исключить из правила например файл robots, надо между этих строк вставить

RewriteCond %{REQUEST_FILENAME} !robots.txt$

все работает. Но подскажите, как исключить из обработки какой либо урл, или группу урлов. Вместо robots ставлю урл

RewriteCond %{REQUEST_FILENAME} !public/item32$ или RewriteCond %{REQUEST_FILENAME} !^.*public/item32$

но исключение не отрабатывает.

Подскажите плз что не так ?
perinot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 15:39   #2
 
Аватар для Spartak
 
Сообщений: 40
FR (активность): 343

Доп. информация
По умолчанию

@perinot,REQUEST_FILENAME это не url, а сравнение с файлом не сервере, как не трудно догадаться из названия. Для сравнения url используется REQUEST_URI
Spartak вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 16:40   #3
 
Аватар для perinot
 
Сообщений: 37
FR (активность): 274

Доп. информация
По умолчанию Автор темы

менял FILENAME на URI - безрезультатно

правило работает одинаково верно в обоих случаях

RewriteCond %{REQUEST_FILENAME} !robots.txt$

и

RewriteCond %{REQUEST_URI} !robots.txt$
perinot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 16:47   #4
 
Аватар для Spartak
 
Сообщений: 40
FR (активность): 343

Доп. информация
По умолчанию

Значит не правильно указали адрес. Покажите урл.
Spartak вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 16:49   #5
 
Аватар для perinot
 
Сообщений: 37
FR (активность): 274

Доп. информация
По умолчанию Автор темы

хотел еще изменить вхождение в самом rewriterule, но тоже не получается.

По логике все урлы которые содержат item32 не должным этим правилом обрабатываться - но все равно редиректит все подряд

RewriteRule ^(.*[^item32].*)$ http://сайт2/$1 [R=301,L]

--------------------
вот содержимое htaccess:

RewriteCond %{HTTP_HOST} ^сайт1\.ru$
RewriteCond %{REQUEST_URI} !robots.txt$
RewriteRule ^(.*)$ http://сайт2.ru/$1 [R=301,L]

# Дополнительные статьи
RewriteRule ^(public)/item([0-9]+)$ /publ1.php?type=$1&id=$2 [L]
perinot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 16:52   #6
 
Аватар для Spartak
 
Сообщений: 40
FR (активность): 343

Доп. информация
По умолчанию

Цитата:
Сообщение от perinot Посмотреть сообщение
правило работает одинаково верно в обоих случаях
В случае с роботс это файл. В вашем примере я файла не вижу, чпу нужно проверять через request_uri.

И не будет работать. Вам уже подсказали как нужно.

RewriteCond %{REQUEST_URI} !/public/item1$
Spartak вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 17:00   #7
 
Аватар для perinot
 
Сообщений: 37
FR (активность): 274

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от Spartak Посмотреть сообщение
RewriteCond %{REQUEST_URI} !/public/item1$
по этому исключению уходим на сайт2 по этой ссылке
сайт2/publ1.php?type=public&id=66

т.е. получается зацикливается апач, исключение срабатывает, но затем в след. конструкции (RewriteRule ^(public)/item([0-9]+)$ /publ1.php?type=$1&id=$2 [L]) идет преобразование на урл вида publ1.php?type=public&id=66, и при повторном запуске htaccess уже урл не удовлетворяет правилу (RewriteCond %{REQUEST_URI} !/public/item1$) и благополучно переходит на сайт 2. Как то так, если я не ошибся
perinot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 17:03   #8
 
Аватар для Spartak
 
Сообщений: 40
FR (активность): 343

Доп. информация
По умолчанию

Потому что это ссылка к этому исключению не имеет никакого отношения. Там явно указан какой адрес исключить. Для других адресов нужно писать другие правила.
Spartak вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 17:52   #9
 
Аватар для perinot
 
Сообщений: 37
FR (активность): 274

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от Spartak Посмотреть сообщение
Потому что это ссылка к этому исключению не имеет никакого отношения. Там явно указан какой адрес исключить. Для других адресов нужно писать другие правила.
тогда так?

RewriteCond %{REQUEST_URI} !/public/item1$ [OR]
RewriteCond %{REQUEST_URI} !/publ1.php?type=public&item=1$
perinot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 21:27   #10
 
Аватар для Spartak
 
Сообщений: 40
FR (активность): 343

Доп. информация
По умолчанию

Параметры запроса сравниваются по QUERY_STRING, притом переменная содержит исключительно строку запроса.

%{REQUEST_URI}?%{QUERY_STRING} !/publ1\.php\?type=public&item=1$
Spartak вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 21:32   #11
 
Аватар для perinot
 
Сообщений: 37
FR (активность): 274

Доп. информация
По умолчанию Автор темы

спасибо, заработало в таком виде

RewriteCond %{REQUEST_URI} !/public/item1$
RewriteCond %{QUERY_STRING} !type=public&item=1$
perinot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 31.03.2015, 21:34   #12
 
Аватар для Spartak
 
Сообщений: 40
FR (активность): 343

Доп. информация
По умолчанию

@perinot, Пожалуйста, вымучили
Spartak вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Ответ

Метки
сайт

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить УРЛы страниц на ВП? Alensel WordPress 12 05.08.2013 07:59
[ Вопрос ] Не индексируются некоторые страницы Airon9 Индексация сайта 2 05.02.2013 23:04
vbSEO. ЧПУ урлы в Vbulletin Klopopryg vBulletin 1 20.01.2012 02:32
Как исключить неуникальный текст из индексации? Apelsex Индексация сайта 13 28.10.2011 11:17

Текущее время: 05:26. Часовой пояс GMT +3.