перенаправление на другой сервер на основе URL-адреса


Я создал новый веб-сайт для клиента, у которого интранет интегрирован в их старый веб-сайт.

Новый веб-сайт в настоящее время находится на другом сервере, но когда записи домена A указывают на новый сервер, старый сайт (и интрасеть), очевидно, будут недоступны, но мне нужно поддерживать их интрасеть активной. Путь к их внутренней сети таков: abc.com/intranet

Есть ли способ направить URL-адрес прямо на старый сервер? Например:

abc.com - new website loads on new server

abc.com/intranet - old website loads on older server

Если это невозможно, я полагаю Я рассматриваю возможность создания поддомена в abc.com для интрасети. Любые мысли приветствуются.

Author: JakeGould, 2013-11-14

2 answers

Вам нужно использовать Apache RewriteRule с помощью mod_rewrite. Это может быть помещено в файл .htaccess в корневом каталоге вашего сервера или непосредственно в файл конфигурации Apache.

Если вы хотите перенаправить example.com на example.com/intranet, то это Apache RewriteRule, который должен работать для ваших нужд:

RewriteEngine on
RewriteRule ^(.*)$ /intranet [L,R=301]

Это захватит любой URL-адрес на сайте, на котором размещен этот RewriteRule, и перенаправит их на /intranet. Это /intranet также может быть полным URL-адресом, как в приведенном ниже примере:

RewriteEngine on
RewriteRule ^(.*)$ http://example.com/intranet [L,R=301]

РЕДАКТИРОВАТЬ: Перечитав ваш вопрос, я не на 100% уверен, что приведенный выше ответ работает для вас как есть. Поэтому я думаю, что если вы описываете, как указать один URL-путь с одного сервера на другой, вы бы сделали это. Это будет размещено на новом сервере:

RewriteEngine on
RewriteRule ^/intranet(.*)$ http://old_example.com/intranet [L,R=301]

, который будет захватывать любой URL-адрес, исходящий от new_example.com/intranet, и перенаправлять его на old_example.com/intranet.

ДРУГОЕ РЕДАКТИРОВАНИЕ: Поскольку на оригинальном плакате указано, что IP-адрес сервера будет полностью изменен, то поддомен для старый сервер - лучший способ уйти. Вы не сможете перенаправлять контент в одном домене так, как вы описываете, если полностью переключите домены на другой IP. Оба сервера должны быть активны с активным, но разным доменным именем для того, что вы хотите, чтобы произошло.

 1
Author: JakeGould, 2014-03-28 16:51:10

Abc.com/intranet это путь в виртуальной файловой системе, предоставляемый вашим веб-сервером, поэтому невозможно обслуживать содержимое с другого веб-сервера. Здесь у вас есть 2 варианта.

  1. Поместите обратный прокси-сервер перед обоими серверами и получите содержимое с сервера A или B на основе исходного запроса клиента.

  2. Как вы сказали, создайте поддомен, а также перенаправьте /интрасеть на новый поддомен.

Надеюсь, это поможет!

 1
Author: Babblo, 2013-11-14 15:18:01