И раскрыть бумажники, кошельки, портмоне и иже с ними...
По-моему, у пользователя с ником shmanci ...
Неправда Ваша...
1. Практически везде требуется авторизация пользователя.
2. В .htacces проверяется USER_AGENT и скрипт пойдёт по другой ветке.
3. Для такого пользователя будет создана кука со своей сессией.
Да, для Яндекса - это проблема. Но есть большие подозрения, что он почти научился склеивать такие страницы с редиректируемыми...
И какие же проблемы со ссылочной структурой должны возникнуть в случае, когда будет задан константный идентификатор сессии, который сделает все адреса постоянными? Нужно будет только немного времени для переиндексации сайта поисковым роботом, не более того. Здесь идентификатор сессии будет выглядеть как любой другой динамический параметр движка, например группа товара или раздел магазина и т.п.
Михаил, не лукавьте. Если мы не имеем доступа к исходникам и не можем включить на сервере директиву session.use_trans_sid off,
то это один из способов обхода идентификатора сессии.
А это уже кто как захочет. Можно таким же образом присвоить идентификатору сессии постоянное значение, например:
osCsid=sessionidforsearchenginespiders
и тогда у таких страниц будет постоянный адрес, что не вызовет их размножение и "обиды" поисковых машин... Да и почти каждая CMS это скушает...
Речь шла о том, что в mod_rewrite нельзя обработать QUERY_STRING. Как выяснилось - можно.
Воспользуйтесь технологией RSS, я думаю этого будут больше, чем достаточно.
Вы не в теме, молодой человек, и программировать пока не научились. Читайте:
/ru/forum/comment/1065879;postcount=40
Михаил, если не умеете программировать - так и скажите, что Вы кодер, читающий мануалы и пытающийся что-то выродить. Зачем же флудить по все форуму. Если не ответил Вам вовремя - значит был занят. Но этот так - лирика. А теперь по теме.
Да, в мануале написано, что в mod_rewrite обрабатывается url до строки параметров, т.е. QUERY_STRING можно только отсечь или добавить, а манипулировать с его переменными нельзя. Да мало-ли что там написано? Голова на то и дана, чтобы думать.
Вот рабочий пример кода, который я (как сторонник open source) разрешаю использовать Вам там, где заблагорассудится. Будем исходить из того, что идентификатором сессии у нас является параметр osCsid (я думаю Вы слышали про CMS, которая добавляет его к урлам при отключенных куках). Итак, вот что надо сделать, чтобы используя модуль mod_rewrite вернуть запрашивающему агенту url без этого параметра:
RewriteCond %{QUERY_STRING} ^[^\?&]*osCsid=.{32}.*$ RewriteRule ^(.*)$ $1/%{QUERY_STRING}? RewriteRule ^(.*)/osCsid=.{32}(.*)$ %{REQUEST_URI}?$2 [R=301,L]
Как я и говорил, всё довольно просто.
Кстати, условие добавлено для того, чтобы снизить нагрузку на сервер, всё работает и без него. Но скажите, ведь намного красивее выглядит, когда у нас обрабатываются не все url-ы подряд, а только те, которые содержат идентификатор сессии.
А теперь добавьте перед этим условием, например, вот такой код:
RewriteCond %{HTTP_USER_AGENT} ^Yandex.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^StackRambler.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Aport.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Google.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Slurp.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^msnbot.* [NC]
и получите механизм для того, чтобы отправить роботов основных поисковых систем на адрес без идентификатора сессии.
З.Ы. Программист тем и отличается от кодера, что думает головой, проверяет многие вопросы на практике, а не тупо копирует чужие листинги, изменив названия переменных. Сам я, к сожалению, уже несколько лет не пишу программы постоянно, теперь этим занимается компания, которой я руковожу, но очень долгое время только этим зарабатывал себе на хлеб. И не только на хлеб. А вот Вас на работу я бы не принял...