Николай В., все зависит оттого, по каким полям будет вестись поиск и как часто будет обновляться структура и сами данные. уточните этот момент.
Можно организовать ссылку на внутреннюю страницу second.shtml (уже во врейме) таким образом:
- на главной странице стоит ссылка на second.phtml (расширение может быть любое, главное чтобы не shtml, как у существующих файлов)
- в .htaccess правила типа
RewriteEngine on # Останавливаем обработку существующих страниц RewriteCond %{SCRIPT_FILENAME} -f RewriteRule .* - [L] # Подставляем фрейм RewriteRule ^(.*)\.phtml frame.php?url=$1
- в файле frame.php
<html> <head> <title>Site</title> </head> <frameset border="0" frameborder="0" framespacing="0" rows="33,*"> <frame scrolling="no" name="index" src="/main/topframe.htm" marginwidth="0" marginheight="0" target="screen" noresize> <frame scrolling="auto" name="screen" src="/main/<? echo $url ?>.shtml" marginwidth="0" marginheight="0" target="_self"> </frameset> <body> пустота </body> </html>
Такая система скорее всего поможет вам решить проблему, но при этом изменятся адреса некоторых страниц, что не очень хорошо с точки зрения SEO.
Проще в вашем избавиться от фреймов (например, с помощью PHP).
Истину глаголите :)
Готовый движок - это универсальное средство, со всеми вытекающими плюсами и минусами (как правило главный минус - потребление ресурсов сервера).
Подозреваю, что глюки полезли не из-за кривости Ruby, а из-за недостаточных навыков программиста :)
Есть PHP и mod_rewrite?
А что именно подсказывать? Поместите в один файл содержимое файлов /main/topframe.htm и /main/main1.shtml и залейте его вместо главной страницы. В чем проблема?
Спасибо.
В моем случае user_agent постоянный, поэтому чем проще защита - тем лучше. А вообще идея ясна, спасибо.
в PHPINFO они есть, но условия не проходят, ни с HTTP:, ни без него :(
Вопрос к знатокам nginx - как будут выглядеть аналогичные выражения для nginx'а?
Вы правы,в моем случае это самое оптимальное решение. Но возникла техническая проблема - перед Апачем у меня стоит Nginx, поэтому REMOTE_ADDR показывает локальный адрес сервера, а HTTP_X_FORWARDED_FOR и HTTP_X_REAL_IP mod_rewrite не видит. Кто-нибудь знает как обойти эту проблему?
Ограничивать всех посетителей не хочется (сам часто открываю в фоновом режиме несколько страниц).
В iptables можно блокировать посетителей с определенного диапазона адресов и определенного user_agent?
И что делали с этим дальше?
Появляется периодически. Пару дней грабит, потом неделю тишина. Впервые появился около месяца назад. Сейчас заблокировал несколько адресов, тишина.
Год назад было около 300к, потом перестал считать.
Для ддоса слишком тупой алгоритм. Сегодня сервер загрузился на 45-50% (обычно в это время нагрузка ~10%), на скорости отдачи страниц посетителям это почти не повлияло. Кроме того, грабер подставляет в Referer адрес страницы, на которой была найдена ссылка.