Перенаправление виртуального хоста захватывает запрос на другой (деактивированный) виртуальный хост

mobil

Пользователь
Регистрация
30.01.15
Сообщения
1
Реакции
0
Баллы
1
Привет! Я любитель Apache, много узнал о конфигурации Apache, но до сих пор не знаком с функцией «Перенаправление».
Мы размещаем 2 домена «perrypedia.de» и «perrypedia.proc.org», последний — это старое доменное имя, которое необходимо перенаправить на новое. В рамках perrypedia.de работают две вики: test.perrypedia.de и www. перрипедия. де. Кроме того, все запросы без SSL должны быть перенаправлены на https. Для этого я создал четыре файла конфигурации с пятью Vhosts. Работают отлично и стабильно (... за одним исключением, о котором расскажу позже).

Убунту 18.04, Апач 2.4.29

Тествики, http:



Код:
<IfModule mod_ssl.c>
<VirtualHost *:443> ServerName www.perrypedia.de ServerAlias perrypedia.de DocumentRoot /var/www/prod RewriteEngine on # add www RewriteCond "%{HTTP_HOST}" "!^www\." [NC] RewriteCond "%{HTTP_HOST}" "!^$" RewriteRule "^/?(.*)" "https://www.%{HTTP_HOST}/$1" [L,R,NE] # Short url RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/mediawiki/index.php [NE] # Redirect / to main page RewriteRule ^/*$ %{DOCUMENT_ROOT}/mediawiki/index.php [NE] # Cache RewriteCond %{HTTP_COOKIE} !UserID= RewriteCond %{QUERY_STRING} !. RewriteCond %{THE_REQUEST} ^GET\x20/wiki/([^\x20/]+)\x20HTTP RewriteCond %{DOCUMENT_ROOT}/mediawiki/cache/%1.html -s RewriteRule ^wiki/(.+)$ /mediawiki/cache/%1.html [B,L,NS]
(... a lot more directives: logging, SSL certificate, bandwidth, AWStats, directory access ...)
</VirtualHost>
<VirtualHost *:443> ServerName www.perrypedia.proc.org ServerAlias perrypedia.proc.org
(... SSL ...) Redirect 301 "/" "[URL='https://wmlogs.com/yti/ZuEEuZGVodHRwczovL3BlcnJ5cGVkaWkVG']https://www.perrypedia.de[/URL]"
</VirtualHost>
</IfModule>



Код (разметка): Testwiki, https:
<VirtualHost *:80> ServerName www.perrypedia.de ServerAlias perrypedia.de ServerAlias www.perrypedia.proc.org ServerAlias perrypedia.proc.org Redirect 301 "/" "[URL='https://wmlogs.com/yti/ZAZZAZS9odHRwczovL3BlcnJ5cGVkaWEuWak']https://www.perrypedia.de/[/URL]" </VirtualHost>
Код (разметка): Продуктивный, http:
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName test.perrypedia.de DocumentRoot /var/www/test RewriteEngine on RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/mediawiki/index.php [NE] RewriteRule ^/*$ %{DOCUMENT_ROOT}/mediawiki/index.php [NE] (... a lot more directives: logging, SSL certificate, bandwidth, directory access ...) </VirtualHost> </IfModule>
Код (разметка): Продуктивный, https:
<VirtualHost *:80> ServerName test.perrypedia.de Redirect 301 "/" "[URL='https://wmlogs.com/yti/Zk55kZS9odHRwczovL3Rlc3QucGVycnlwZWRpYSpRW']https://test.perrypedia.de/[/URL]" </VirtualHost>
Код (разметка): Правила редиректа и перезаписи по большей части не мои изобретения, а собраны из нескольких веб-ресурсов. Почти все в порядке... вот проблема, с которой я не могу справиться. Когда я закрываю продуктивный сайт (a2dissite prod-http и https), Testwiki немедленно перехватывает ВСЕ http-запросы, даже для продуктивного сайта. И наоборот (остановка Testwiki приводит ВСЕ http-test-URL к вики-версии продукта). Похоже, это происходит из-за неспецифического перенаправления 301 "/"... Я думал, что Vhost захватывает только URL-адрес, соответствующий имени или псевдонимам его сервера, но теперь я сомневаюсь. Я хочу научиться и понять, что я делаю не так. У кого-нибудь есть ценная подсказка?
Перенаправление виртуального хоста захватывает запрос на другой (деактивированный) виртуальный хост
 
Сверху Снизу