Apache2: обслуживать страницу с другого IP-адреса

Пожалуйста, потерпите меня, пока я пытаюсь объяснить, какую гимнастику я бы хотел выполнить.

У меня есть этот домен: eamorr.somesite.comна 192.168.100.100.

Он обслуживает страницы из моего public_html папка как положено.

Теперь я хочу использовать следующий адрес:

www.somesite.com/eamorr

У меня нет контроля над www.somesite.com (192.168.99.99), однако мой системный администратор позволил мне разместить .htaccess файл в eamorr папка. Мне ни при каких обстоятельствах не разрешается размещать что-либо еще в eamorr Папка по причинам, я не знаю.

Что я хочу, чтобы это произошло:

Пользователь переходит к www.somesite.com/eamorr/some_page.php

Пользователь кормится some_page.php от eamorr.somesite.com/some_page.php (т.е. 192.168.100.100/some_page.php).

Мне бы хотелось, чтобы это было как можно более плавным, то есть, когда пользователь переходит на http://www.somesite.com/eamorr/some_page.php его обслуживают some_page.php и не обращают внимания на тот факт, что some_page приходит с другого сервера (192.168.100.100)

http://www.somesite.com/eamorr должен всегда находиться в адресной строке браузера пользователя, а не http://eamorr.somesite.com/ - мой начальник "просто так хочет"...

Можно ли это сделать с помощью .htaccess?

2 ответа

Решение

Похоже, что вы хотите, это то, что называется "обратный прокси", и это работа для Apache mod_proxy, Тем не менее, вы не можете установить это в .htaccess файл - это должно быть сделано в другом контексте. Возможно, кто-то здесь знает лучше, но я не думаю, что то, что вы просите, будет возможно с одним .htaccess файл один.

Используйте Apache mod_proxy указать на другой сервер. Apache документы здесь.

Это сработало хорошо:

ProxyPass /blog http://blog.example.com/
ProxyPassReverse /blog http://blog.example.com/

Но только после того, как прокси-модули были загружены правильно:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_html_module /usr/lib/apache2/modules/mod_proxy_html.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

Заметки

  • Из-за CloudFlare мне также пришлось вести блог с другого имени хоста, а не *.example.com,
  • я добавил Disallow: / к моему blog.example.com/robots.txt, Как это поисковые системы не начнут индексировать в двух местах. И поисковые системы будут просто игнорировать blog/robots.txt,
Другие вопросы по тегам