У меня есть сервер apache, который находится перед экземпляром JIRA Service Desk, работающим на Windows Server 2012.
У нас есть 2 клиентских портала в JIRA, и мне нужно настроить Apache, чтобы к каждому клиентскому порталу можно было получить доступ через другой виртуальный хост.
Как это:
it.mysite.com, or https://it.mysite.com
и получает - https://it.mysite.com/servicedesk/customer/portal/1/servicedesk/customer/portals
и получаетлюбой другой запрос, например it.mysite.com/somepage.html
нужно просто принудительно использовать SSL
Клиент 2 обращается к root как as.mysite.com, or https://as.mysite.com
и получает - https://as.mysite.com/servicedesk/customer/portal/2
/servicedesk/customer/portals
и получаетas.mysite.com/somepage.html
нужно просто принудительно использовать SSLВот что у меня есть на данный момент:
<VirtualHost *:80>
RewriteEngine on
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
RewriteRule ^/$ /servicedesk/customer/portal/1/ [R=301]
DocumentRoot "c:/Apache24/htdocs"
#Redirect permanent / https://www.it.mysite.com/ # tried this, it seemed to be ignored
ServerName www.it.mysite.com
ServerAlias it.mysite.com
....
</VirtualHost>
<VirtualHost *:80>
RewriteEngine on
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
RewriteRule ^/$ /servicedesk/customer/portal/2/ [R=301]
DocumentRoot "c:/Apache24/htdocs"
#Redirect permanent / https://www.as.mysite.com/ # tried this, it seemed to be ignored
ServerName www.as.mysite.com
ServerAlias as.mysite.com
....
</VirtualHost>
<VirtualHost *:443>
RewriteEngine on
RewriteRule ^/$ /servicedesk/customer/portal/1 [R=301]
RewriteRule ^/servicedesk/customer/portals$ https://it.mysite.com/servicedesk/customer/portal/1 [R=301]
DocumentRoot "c:/Apache24/htdocs"
ServerName www.it.mysite.com
ServerAlias it.mysite.com
...
</VirtualHost>
<VirtualHost *:443>
RewriteEngine on
RewriteRule ^/$ /servicedesk/customer/portal/2 [R=301]
RewriteRule ^/servicedesk/customer/portals$ https://as.mysite.com/servicedesk/customer/portal/2 [R=301]
DocumentRoot "c:/Apache24/htdocs"
ServerName www.as.mysite.com
ServerAlias as.mysite.com
...
</VirtualHost>
Кажется, все работает, как ожидалось для it.mysite.com
Однако, если я захожу на as.mysite.com, я получаю: https://it.mysite.com/servicedesk/customer/portal/2
Перенаправление HTTP работает, отображается правильный портал (2), но домен возвращается к it.mysite.com
То же самое происходит с любой страницей, которую я посещаю. Например: - as.mysite.com/somepage.html
получает меня https://as.mysite.com/somepage.html
Выход для C:\apache24\bin\httpd -S
является:
VirtualHost configuration:
*:80 is a NameVirtualHost
default server www.it.mysite.com (C:/Apache24/conf/httpd.conf:541)
port 80 namevhost www.it.mysite.com (C:/Apache24/conf/httpd.conf:541)
alias it.mysite.com
port 80 namevhost www.as.mysite.com (C:/Apache24/conf/httpd.conf:562)
alias as.mysite.com
*:443 is a NameVirtualHost
default server www.it.mysite.com (C:/Apache24/conf/httpd.conf:596)
port 443 namevhost www.it.mysite.com (C:/Apache24/conf/httpd.conf:596)
alias it.mysite.com
port 443 namevhost www.as.mysite.com (C:/Apache24/conf/httpd.conf:636)
alias as.mysite.com
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/Apache24/htdocs"
Main ErrorLog: "C:/Apache24/logs/error.log"
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="C:/Apache24/logs/" mechanism=default
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
C:\Windows\system32>
Как я могу заставить его сохранить as
поддомен?
Ваши хосты выглядят нормально. Я бы сделал следующее, чтобы устранить неполадки
1) Перед каждым тестом явно очищайте кеш браузера или используйте инструмент командной строки, например curl, для проверки запроса.
2) Добавьте журналы доступа / ошибок для каждого виртуального хоста, чтобы убедиться, что запросы, которые вы делаете, попадают на правильный виртуальный хост
3) Включите ведение журнала mod_rewrite для отладки перезаписи. Подробности можно найти здесь: http://wiki.apache.org/httpd/RewriteLog