Apache перенаправить на другой сайт - PullRequest
0 голосов
/ 16 мая 2018

Сначала я объясню сценарий У меня есть два веб-сайта, созданных в cake3, работающих на двух разных серверах. Что мне нужно это: http://demo.com/lms - lms - это суффикс, который я использую для прохода через прокси.

ProxyPass /lms/ http://lms.com/
ProxyPassReverse "/lms/" " http://lms.com/"

, поэтому перенаправление работает нормально с горячим резервом.

Как и в случае ввода http://demo.com/lms в URL, сайт LMS успешно открылся без изменения URL.

Но проблема, с которой я столкнулся, когда щелкнул какую-то ссылку на сайте LMS, не сработала. Что я вижу, нажимая на какую-то ссылку, например / users / login. мой URL приходит http://demo.com/users/login, что недопустимо.

Если я добавлю lms вручную и нажму http://demo.com/lms/users/login, значит, он работает нормально.

Так как я могу добавить префикс к каждому URL торта в файле .htaccess, чтобы ссылки на мой второй сайт стали там пригодными для использования?

123456

1 Ответ

0 голосов
/ 16 мая 2018

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

Вам нужно написать собственный код, чтобы найти каждый заголовок HTTP Location, атрибут HTML, который может содержать URL, каждое значение CSS url(), каждый URL, динамически генерируемый JavaScript (JS - это то, где он получает действительно трудно) и определите, является ли значение относительным путем (который вам нужно оставить в покое), абсолютным путем (который вам нужно будет переназначить), абсолютным URL-адресом того же сайта (который вам нужно будет переназначить) или абсолютный URL для другого сайта (чего бы вы не сделали).

Это действительно действительно сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...