Я установил перенаправление на своем виртуальном хосте Apache, обслуживающем несколько поддоменов - назовите их a.example.com и b.example.com - обслуживая приложение ruby on rails.
В моем конфигурационном файле virtualhost у меня есть это правило:
rewriteEngine on
rewriteRule proxy/(.+)$ http://news.example.com/$1 [P]
Идея состоит в том, что я могу сделать http://a.example.com/proxy/news/a
и получить содержимое http://news.example.com/news/a
, но в пределах одного и того же субдомена, поэтому ajax не Не думаю, что мои запросы Ajax являются междоменными - больше информации по этому вопросу.
Проблема в том, что, хотя он отлично работает в моей рабочей среде, он не работает на производстве!
Оба сервера являются сервером Ubuntu 10.04. Apache пришел из стандартных репозиториев Ubuntu, используя apt-get install
.
Я сделал diff для всего /etc /apache2 / dir, и единственное отличие - это имя сервера.
Если я изменю последний параметр на [L], я получу перенаправление, так что это заставляет меня думать, что mod_rewrite работает. Это просто не общается с mod_proxy.
Глядя на журналы (/var/log/apache2
и журнал rails), кажется, что правило перезаписи в производственной среде просто игнорируется - журналы точно такие же, как если бы его там не было.
Как я могу отладить это? Могу ли я заставить Apache предоставить мне больше информации о том, почему это конкретное правило не применяется при доступе к /proxy
?