Как перенаправить URL-адрес, например (www.foobar2.com), на другой URL-адрес (www.foobar.com) с помощью файла htaccess - PullRequest
0 голосов
/ 07 февраля 2019

Я устанавливаю ссылку, которая должна открыть другой сайт.Например, если браузер открывается www.foobar2.com , он должен открыться www.foobar.com без измененияURL.Я обнаружил, что это можно сделать с помощью файла .htaccess .В настоящее время, если я открою, www.foobar2.com , он перенаправит на www.foobar.com , но URL-адрес также изменится на www.foobar.com .Но я хочу, чтобы URL не менялся.Что мне нужно сделать?

Я пробовал это, но оно не работает -

RewriteCond %{HTTP_HOST} ^www.foobar2.com
RewriteRule ^(.*) http://www.foobar.com [P]

Пожалуйста, помогите мне с этим.Спасибо:)

1 Ответ

0 голосов
/ 07 февраля 2019

Поскольку http-хост, на который отправляется запрос, всегда отображается в URL-адресе (по очевидным причинам), вам необходимо реализовать функцию прокси-сервера, этого нельзя сделать с помощью чистого переписывания или перенаправления.

HTTP-сервер apache предлагает для этого прокси-модуль, который можно использовать отдельно или встроить в модуль перезаписи.Однако, если вы хотите использовать его, вам нужно позаботиться о том, чтобы модуль действительно загружался первым.В этом случае он состоит из двух подмодулей, основного прокси-модуля и модуля proxy_http.

Теперь вы можете реализовать директиву ProxyPass для URL, который вы хотите получить с другого хоста:

ProxyRequests off
ProxyPass / https://www.foobar.com
ProxyPassReverse / https://www.foobar.com

(да, это off в первой строке выше)

Это правило должно быть реализовано на хосте http www.foobar2.com.Он будет выполнять внутренний подзапрос на www.foobar.com для каждого входящего запроса (поскольку он маскирует корень (/) и доставляет полученный ответ обратно первоначально запрашивающему клиенту.

...