The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"mod_rewrite: роботам - все, пользователю - только index!"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Редирект)
Изначальное сообщение [ Отслеживать ]

"mod_rewrite: роботам - все, пользователю - только index!"  +/
Сообщение от Олег email(??) on 14-Фев-11, 20:33 
Впервые столкнувшись с mod_rewrite несколько дней назад уже запутался...
Задача:
Необходимо, чтобы:
- по любой внешней по отношению к mysite.ru ссылке (например, по ссылке в поисковике), указывающей на любой файл, кроме index, пользователь мог перейти только на index;
- при прямом наборе адреса пользователем на любой файл сайта mysite.ru, переход пользователя мог бы быть только на index;
- переход пользователя по внутренней ссылке, указывающей на любой файл, принадлежащий сайту mysite.ru, не вызывал бы  редиректа на index;
- НО, необходимо, чтобы поисковики могли видеть и индексировать все страницы и файлы сайта mysite.ru.

(сайт лежит в папке основного домена home/mysite).

(11.02.2011) придумал вот такой алгоритм, надеюсь корректный:

IF
     'пользователь'
    AND
     'ссылка не принадлежит mysite.ru'
THEN
    'перенаправить на index.htm'
ELSE
    'разрешить все файлы (только для поисковых роботов)'

Подскажите, плз, как написать такое на языке htaccess.

(13.02.2011) Вот, что получилось наворотить самостоятельно , похожее на мой алгоритм:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond ${HTTP_REFERER} !^www\.mysite\.ru* [NC,C,NS]
#или так?
RewriteCond ${HTTP_REFERER} !^\www.?\mysite\.ru* [NC,C,NS]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Opera.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Firefox.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Safari.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.* [NC]
Redirect 303 / http://www.mysite.ru
#или так?
RewriteRule ^(.*)$ index.php/$1 [R,L]
#синтаксис в предыдущем и следующих?
RewriteRule ^(.*)|(.*)\.(.*)$ http://www.mysite.ru/$1 [R=permanent,L]
#или так?
RewriteRule (.*) http://www.mysite.ru/$1 [R=permanent,L]

Поправьте, плз, если что-где не так (там бы еще клиентов, наверное, добавить бы?).
В коде 4 варианта перенаправления - какой оставить, как было бы правильно?.
+ корректность синтаксиса?

Насколько необходимо наличие флагов [C] и [NS] в первом условии?
Наличие флага [L] в конце правила влияет только на текущее правило?
можно ли будет после выполнения этого условия поставить условие для запрета mail-ботов?
...и не только?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "mod_rewrite: роботам - все, пользователю - только index!"  +/
Сообщение от Pahanivo (ok) on 14-Фев-11, 22:46 
а если браузер не отдает рефера? пользователь так и будет в индекс ломится (бесконечный цикл аднака)?
что мешает пользователю сменить имя агента на yandexbot?
к чему все эти выкрутасы?
а если пользователь сохранил конкретный url - он опять попадет на индекс - абидно наверно?
имхо ССЗБ
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "mod_rewrite: роботам - все, пользователю - только index!"  +/
Сообщение от Олег email(??) on 14-Фев-11, 23:03 
> а если браузер не отдает рефера? пользователь так и будет в индекс
> ломится (бесконечный цикл аднака)?

А что, есть такие? Просто я об этом не слышал.
Ну и несомненно, если кроме основных (около 15, если не ошибаюсь) user_agent будут какие-то малоизвестные и нераспространенные, думаю, это можно будет пережить.

> что мешает пользователю сменить имя агента на yandexbot?

Ну это слишком продвинутый какой-то пользователь. От такого никакая защита не спасет. :)

> к чему все эти выкрутасы?

сайт полностью флэшовый из множества swf, связанных друг с другом (так уж вышло) и входа на этот сайт для пользователя кроме как на index быть не должно, кроме поисковиков.

> а если пользователь сохранил конкретный url - он опять попадет на индекс
> - абидно наверно?

исходя из предыдущего, у пользователя не может быть другого сохраненнего url-а, кроме как на mysite.ru

> имхо ССЗБ

...как расшифровывается "ССЗБ", я не профи... :)))

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "mod_rewrite: роботам - все, пользователю - только index!"  +/
Сообщение от Pahanivo (ok) on 14-Фев-11, 23:17 
>> а если браузер не отдает рефера? пользователь так и будет в индекс
>> ломится (бесконечный цикл аднака)?
> А что, есть такие? Просто я об этом не слышал.

анонимный прокси ....

> сайт полностью флэшовый из множества swf, связанных друг с другом (так уж
> вышло) и входа на этот сайт для пользователя кроме как на
> index быть не должно, кроме поисковиков.

а нафега его тогда вообще индексировать :)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "mod_rewrite: роботам - все, пользователю - только index!"  +/
Сообщение от Олег email(??) on 14-Фев-11, 23:31 
> анонимный прокси ....

Зачем анонимный прокси? ...никаких данных не собирается, а если интернет магазин придется ставить, то тот и вообще работать через ан-й прокси не будет. Так что, с анонимным прокси - "все в сад" :).

> а нафега его тогда вообще индексировать :)

...так надо! Очень!

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "mod_rewrite: роботам - все, пользователю - только index!"  +/
Сообщение от Pahanivo (ok) on 14-Фев-11, 23:36 
>> а нафега его тогда вообще индексировать :)
> ...так надо! Очень!

список урлов на флешки которые по этим урлам недостпны? :)
ммм а сессии тут не помогут?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "mod_rewrite: роботам - все, пользователю - только index!"  +/
Сообщение от Олег email(??) on 14-Фев-11, 23:42 
> список урлов на флешки которые по этим урлам недостпны? :)
> ммм а сессии тут не помогут?

В том-то и дело, что по определенному запросу в поисковике выдается ссылка на к.-л. флэшку (пусть будет), а пользователь по этой ссылке должен попасть только на index.
Как с сессиями работать я не знаю :(, да и нужно ли это?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру