Назад | Перейти на главную страницу

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

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

У меня есть этот домен: 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?

Похоже, вам нужен так называемый «обратный прокси», и это задача 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.