У меня проблема с запуском 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".