Моя проблема заключается в следующем: у меня сервер приложений JBoss 4.2.3 с коннектором AJP 1.3, работающий на одном хосте под Windows (192.168.1.2 для моей тестовой среды) и Apache 2.2.14, работающий на другом компьютере FreeBSD (192.168.1.10 ). Apache действует как «передний вход» для всех запросов и отправляет их в JBoss через mod_jk. Все работало нормально, пока мне не пришлось оптимизировать SEO. Эти оптимизации включают URL-адреса SEF, поэтому я решил использовать mod_rewrite для Apache для изменения запросов перед их отправкой в JBoss. По сути, мне нужно реализовать 2 правила:
Вот мой конфиг Apache для тестового виртуального хоста:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/www/dummy"
ServerName 192.168.1.10
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule /directory/(.*) /$1 [R=permanent,L]
RewriteRule ^/([^/]+)/([0-9]+)/?$ /$1/view.htm?id=$2
</IfModule>
JkMount /* jsp-hostname
ErrorLog "/var/log/dummy-host.example.com-error_log"
CustomLog "/var/log/dummy-host.example.com-access_log" common
</VirtualHost>
Проблема в том, что второе правило перезаписи не работает. Запросы проскальзывают в JBoss без изменений, поэтому я получаю ошибку Tomcat 404. Но если я добавлю флаг перенаправления ко второму правилу, как
RewriteRule ^/([^/]+)/([0-9]+)/?$ /$1/view.htm?id=$2 [R,L]
это работает как шарм. Но перенаправление здесь не то, что мне нужно :). Я подозреваю, что проблема в том, что запросы перенаправляются на другой хост (192.168.1.2), но я действительно не знаю, как заставить его работать. Любая помощь будет оценена :) 1023 *