Мод-переписать правило для внешних страниц?
Можно ли использовать 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