Назад | Перейти на главную страницу

Apache RewriteRule - флаг прокси не работает

У меня проблема с запуском Apache 2.2.20 в дистрибутиве Linux Mint.

В моем файле .htaccess есть следующее правило:

RewriteEngine on
RewriteRule old1/old2 http://localhost/new1 [P]

Когда я просматриваю http://localhost/old1/old2 Я просто перенаправляюсь на localhost/new1. То есть новый URL-адрес отображается в адресной строке. Я хочу, чтобы отображался URL-адрес "old1 / old2" (с содержимым страницы из / new1). Что я делаю не так?

Я установил mod_proxy и mod_proxy_http (т.е. a2enmod proxy, a2enmod proxy_http).

Если оба ресурса находятся на одном веб-сервере, просто выполните внутреннюю перезапись, например.

RewriteEngine on
RewriteRule old1/old2 /new1 [L]

Я думаю, тебе тоже нужен ProxyPassReverse заявление. Вот пример из http://httpd.apache.org/docs/2.4/rewrite/proxy.html

RewriteEngine  on
RewriteBase    /products/
RewriteRule    ^widget/(.*)$  http://product.example.com/widget/$1  [P]
ProxyPassReverse /products/widget/ http://product.example.com/widget/

RewriteEngine on RewriteRule ^old1/old2*$ http: // локальный / новый1 [P] RewriteRule ^old1/old2/*$ http: // локальный / новый1 [P]

Если не работает, попробуйте изменить "localhost" на "localhost: 80".