Мод-переписать правило для внешних страниц?

Можно ли использовать mod_rewrite для разрешения адресов, размещенных на другом сервере?

Скажем, я хочу настроить этот URL:

http://www.myserver.com/myfolder/

Чтобы на самом деле решить:

http://www.anotherserver.com/anotherfolder/

Если да, не могли бы вы привести пример RewriteRule?

Ответ 1

Вы можете использовать флаг P в mod_rewrite, чтобы получить этот URL подстановки, запрошенный mod_proxy:

RewriteEngine on
RewriteRule ^myfolder/$ http://other.example.com/anotherfolder/ [P]

Теперь, когда клиент запрашивает /myfolder/ с вашего сервера, он запрашивает http://other.example.com/anotherfolder/ и отправляет ответ с этого сервера обратно клиенту.

Ответ 2

Нет, туннелирование невозможно, для этого вам придется использовать CGI script. Однако вы можете перенаправить:

RewriteRule  ^(.*)  http://new.example.com/$1

с флагом [R] или без него, и он автоматически перенаправит пользователя в новый домен.

Изменить: По-видимому, можно запросить туннелирование с помощью mod_proxy и [P]. См. Ответ Gumbos.

Ответ 3

Эй, я попробовал переписать и не работал (просто протестирован в локальном хосте)

Также я нахожу этот простой способ

Redirect /myfolder external_url