
Итак, вот мой сценарий:
У меня есть 1 статический IP и 2 сервера. 1 сервер - веб-сервер, другой - почтовый сервер. У меня есть маршрутизатор в качестве аппаратного брандмауэра со всеми установленными портами, требующими проброса на внутренние IP-адреса.
Если пользователь вводит URL-адресhttp://www.domain.comони видят этот веб-сайт. Если пользователь хочет получить доступ к веб-почте, он вводит URLhttp://mail.domain.comно все еще вижуhttp://www.domain.com
Я настроил домен веб-почты так, чтобы он был доступен через порт 8080 на почтовом сервере, и если пользователь вводит URL-адресhttp://mail.domain.com:8080это работает без проблем, но не сhttp://mail.domain.com.
Вот в чем моя проблема:
В моем httpd.conf я хочу настроить перенаправление 301, чтобы когда пользователь вводитhttp://mail.domain.comони перенаправляются наhttp://mail.domain.com:8080
Я бы предпочел не использовать .htaccess и сохранить директивы в httpd.conf
Спасибо...
решение1
Вам нужно будет создать виртуальный хост на вашем основном веб-сервере, который отвечает на веб-запросы для адреса "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>
решение2
Есть как минимум 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 доллар [Р=301]с помощью mod_rewrite вы также можете создать обратный прокси-сервер с таким правилом (mail.domain.com должен разрешаться во внутренний IP)
RewriteCond %{HTTP_HOST} ^mail.domain.com$ [NC]
RewriteRule ^(.*)http://mail.domain.com:8080/$1 [П]