LINUX.ORG.RU

mod_rewrite нужна помощь


0

0

Поднял локальный сервер обновлений NOD32 для win машин.

Document Root - /var/www

Базы забираются и складываются в /var/www/nod32
внутри nod32 два каталога:

/var/www/nod32/nod_upd
/var/www/nod32/eset/upd

Все отлично работает и клиенты забирают обновления по следующим адресам:

Nod 3X http://172.16.0.10/nod32/eset_ups
Nod 2X http://172.16.0.10/nod32/nod_upd

Хочется чтобы у клиентов был один адрес для забора обновлений, а именно:
http://172.16.0.10/nod32/

Насколько я понял это делается при помощи mod_rewrite и .htaccess. Я с ним не знаком - помогите написать правила: Клиентов я уже отсортировать могу. Делаю так:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} BPC.2
RewriteRule ??????????????????????????????
RewriteCond %{HTTP_USER_AGENT} BPC.3
RewriteRule ??????????????????????????????

Я уже голову сломал за сегодня с этими rewriterule.
Допустим nod 2.X настроен на обновление с http://172.16.0.10/nod32
Первым делом он тянет update.ver


Как же его собаку можно перенаправить на http://172.16.0.10/nod32/nod_upd

Извините за некоторый сумбур - голова уже не варит к вечеру....
Спасибо!


Ответ на: комментарий от darkshvein

>Ох ты! А чой это он здесь делает?

ты что перепил что ли?

>Поднял локальный сервер обновлений NOD32 для win машин.


Ребята - по делу есть что сказать?

Пробую так:
RewriteCond %{HTTP_USER_AGENT} ^Opera
RewriteRule ^(.*) http://172.16.0.10/$1 [L]

Включил режим отладки пробую достучаться через браузер
Вот что в логе:

RewriteCond: input='Opera/9.27 (Windows NT 5.1; U; en)' pattern='^Opera' => matched
[per-dir /var/www/nod32/] rewrite update.ver -> http://172.16.0.10/update.ver
[per-dir /var/www/nod32/] implicitly forcing redirect (rc=302) with http://172.16.0.10/update.ver
[per-dir /var/www/nod32/] escaping http://172.16.0.10/update.ver for redirect
[per-dir /var/www/nod32/] redirect to http://172.16.0.10/update.ver [REDIRECT/302]

Ошибка 404 - not found.
Понятно что не срабатывает, потому что update.ver лежит в /var/www/nod32/nod_upd/update.ver

Тогда меняю правило на такое
RewriteCond %{HTTP_USER_AGENT} ^Opera
RewriteRule ^(.*) http://172.16.0.10/nod32/nod_upd/$1 [L]

Пробую опять достучаться через браузер и вот что в логе......
Никакой ошибки в браузере не выдает...

/9.27 (Windows NT 5.1; U; en)' pattern='^Opera' => matched
rewrite update.ver -> http://172.16.0.10/nod32/nod_upd/update.ver
implicitly forcing redirect (rc=302) with http://172.16.0.10/nod32/nod_upd/update.ver
escaping http://172.16.0.10/nod32/nod_upd/update.ver for redirect
redirect to http://172.16.0.10/nod32/nod_upd/update.ver [REDIRECT/302]
strip per-dir prefix: /var/www/nod32/nod_upd/update.ver -> nod_upd/update.ver
applying pattern '^(.*)' to uri 'nod_upd/update.ver'
/9.27 (Windows NT 5.1; U; en)' pattern='^Opera' => matched
rewrite nod_upd/update.ver -> http://172.16.0.10/nod32/nod_upd/nod_upd/update.ver
implicitly forcing redirect (rc=302) with http://172.16.0.10/nod32/nod_upd/nod_upd/update.ver
escaping http://172.16.0.10/nod32/nod_upd/nod_upd/update.ver for redirect
redirect to http://172.16.0.10/nod32/nod_upd/nod_upd/update.ver [REDIRECT/302]
add path info postfix: /var/www/nod32/nod_upd/nod_upd -> /var/www/nod32/nod_upd/nod_upd/update.ver
strip per-dir prefix: /var/www/nod32/nod_upd/nod_upd/update.ver -> nod_upd/nod_upd/update.ver
applying pattern '^(.*)' to uri 'nod_upd/nod_upd/update.ver'
/9.27 (Windows NT 5.1; U; en)' pattern='BPC.2' => not-matched
add path info postfix: /var/www/nod32/nod_upd/nod_upd -> /var/www/nod32/nod_upd/nod_upd/update.ver
strip per-dir prefix: /var/www/nod32/nod_upd/nod_upd/update.ver -> nod_upd/nod_upd/update.ver
applying pattern '^(.*)' to uri 'nod_upd/nod_upd/update.ver'
/9.27 (Windows NT 5.1; U; en)' pattern='^Opera' => matched
rewrite nod_upd/nod_upd/update.ver -> http://172.16.0.10/nod32/nod_upd/nod_upd/nod_upd/update.ver
implicitly forcing redirect (rc=302) with http://172.16.0.10/nod32/nod_upd/nod_upd/nod_upd/update.ver
escaping http://172.16.0.10/nod32/nod_upd/nod_upd/nod_upd/update.ver for redirect
redirect to http://172.16.0.10/nod32/nod_upd/nod_upd/nod_upd/update.ver [REDIRECT/302]
add path info postfix: /var/www/nod32/nod_upd/nod_upd -> /var/www/nod32/nod_upd/nod_upd/nod_upd/update.ver
strip per-dir prefix: /var/www/nod32/nod_upd/nod_upd/nod_upd/update.ver -> nod_upd/nod_upd/nod_upd/update.ver
applying pattern '^(.*)' to uri 'nod_upd/nod_upd/nod_upd/update.ver'
/9.27 (Windows NT 5.1; U; en)' pattern='BPC.2' => not-matched
add path info postfix: /var/www/nod32/nod_upd/nod_upd -> /var/www/nod32/nod_upd/nod_upd/nod_upd/update.ver
strip per-dir prefix: /var/www/nod32/nod_upd/nod_upd/nod_upd/update.ver -> nod_upd/nod_upd/nod_upd/update.ver
applying pattern '^(.*)' to uri 'nod_upd/nod_upd/nod_upd/update.ver'
/9.27 (Windows NT 5.1; U; en)' pattern='^Opera' => matched

Короче зацикливается и все. Жопа. Кто нибудь подскажите правильное правило....


raw2
() автор топика
Ответ на: комментарий от darkshvein

>Ошибка 404 - windows users not found. >А что, на винфак отписать не судьба? Там же умные люди сидят. Нет, >ему надо на лор...

Ты блин непонятливый? Первое сообщение прочти внимательно. Какой боком вифак до апача и mod_rewrite относится. Короче не дури голову если нет чего по делу сказать.

raw2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.