Итак, это мой сценарий:
У меня 1 статический IP и 2 сервера. 1 сервер - это веб-сервер, другой - почтовый сервер. У меня есть маршрутизатор в качестве аппаратного брандмауэра со всеми установленными портами, которые требуют сквозной передачи на внутренние IP-адреса.
Если пользователь вводит URL http://www.domain.com они видят этот сайт. Если пользователь хочет получить доступ к веб-почте, он вводит URL-адрес http://mail.domain.com но все же вижу http://www.domain.com
Я установил, что домен веб-почты будет доступен через порт 8080 на почтовом сервере, и если пользователь вводит URL-адрес http://mail.domain.com:8080 это работает без проблем, но не с http://mail.domain.com.
Итак, это моя проблема:
В моем httpd.conf я хочу настроить Redirect 301, чтобы, когда пользователь вводит http://mail.domain.com они перенаправляются на http://mail.domain.com:8080
Я бы предпочел не использовать .htaccess и сохранить директивы в httpd.conf
Спасибо...
Для этого есть как минимум 2 способа:
Создать 2 виртуальный хост один для www.domain.com и один для mail.domain.com, а затем поместите свою директиву RedirectMatch во второй.
Вы также можете использовать ProxyPass директива на виртуальном хосте mail.domain.com, чтобы он работал как обратный прокси, а mail.domaine.com:80 работал напрямую без перенаправления
Используйте mod_rewrite, как это, только для перенаправления URL-адреса mail.domain.com с таким правилом
RewriteCond% {HTTP_HOST} ^ mail.domain.com $ [NC]
RewriteRule ^ (. *) http://mail.domain.com:8080/1 доллар США [R = 301]
с mod_rewrite вы также можете сделать обратный прокси с таким правилом, как (mail.domain.com должен разрешаться на внутренний IP-адрес)
RewriteCond% {HTTP_HOST} ^ mail.domain.com $ [NC]
RewriteRule ^ (. *) http://mail.domain.com:8080/1 доллар США [P]
Вам нужно будет создать виртуальный хост на вашем основном веб-сервере, который будет отвечать на веб-запросы для адреса «mail.domain.com». Взгляните на Виртуальный хост на основе имени документация на сайте Apache. Вам также понадобится правило mod_rewrite для перенаправления. Ваша конфигурация будет выглядеть примерно так:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mail.domain.com
RewriteEngine On
RewriteRule (.*) http://mail.domain.com:8080/\1 [R=301,L]
</VirtualHost>