перенаправление на другой сервер на основе 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
для интрасети. Любые мысли приветствуются.
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. Оба сервера должны быть активны с активным, но разным доменным именем для того, что вы хотите, чтобы произошло.
Abc.com/intranet это путь в виртуальной файловой системе, предоставляемый вашим веб-сервером, поэтому невозможно обслуживать содержимое с другого веб-сервера. Здесь у вас есть 2 варианта.
Поместите обратный прокси-сервер перед обоими серверами и получите содержимое с сервера A или B на основе исходного запроса клиента.
Как вы сказали, создайте поддомен, а также перенаправьте /интрасеть на новый поддомен.
Надеюсь, это поможет!