
Допустим, у меня есть exampleA.com и exampleB.com. Если я хочу выполнить перезапись на веб-сервере Apache с websiteA.com на websiteB.com, например, когда я ввожу exampleA.com в браузер, он сохранит URL и покажет мне загруженный контент, как если бы я переходил на exampleB.com, как мне сделать это в качестве прямого добавления виртуального хоста?
Мои исследования показывают что-то вроде:
RewriteRule /some/url(.*) http://exampleB.com/some/url$1 [P,L]
Но я не знаком с релевантностью части «/some/url», поскольку я не хочу переписывать только отдельные URI, а весь домен.
Аналогично, если я перейду на exampleA.com/test.htm, он должен отобразить все, что находится на exampleB.com/test, при этом браузер все время будет выдавать «exampleA.com/test».
решение1
Чтобы это правило применялось ко всему домену, вам нужно...
RewriteRule /(.*) http://exampleB.com/$1 [P,L]
Что по сути то же самое, что:
ProxyPass / http://exampleB.com/
Имейте в виду, что существует множество вещей, которые могут направить браузер пользователя на домен exampleB
. ProxyPassReverse
будет обрабатывать 30x
перенаправления:
ProxyPassReverse / http://exampleB.com/
Но все остальное в контенте может указывать на exampleB.com
, включая HTML-контент (который mod_proxy_html
может быть полезен), JavaScript, CSS и т. д.
решение2
Вы не можете.
Если вы хотите сохранить исходный URL-адрес, вам нужно фактически использовать прокси (поиск ProxyPass) exampleb через examplea или использовать какие-то махинации с фреймами.