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

  • Автор темы Mobil
  • Обновлено
  • 12, May 2024
  • #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://lumtu.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://lumtu.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://lumtu.com/yti/Zk55kZS9odHRwczovL3Rlc3QucGVycnlwZWRpYSpRW']https://test.perrypedia.de/[/URL]" </VirtualHost>


Код (разметка): Правила редиректа и перезаписи по большей части не мои изобретения, а собраны из нескольких веб-ресурсов.

Почти все в порядке.

вот проблема, с которой я не могу справиться.

Когда я закрываю продуктивный сайт (a2dissite prod-http и https), Testwiki немедленно перехватывает ВСЕ http-запросы, даже для продуктивного сайта.

И наоборот (остановка Testwiki приводит ВСЕ http-test-URL к вики-версии продукта). Похоже, это происходит из-за неспецифического перенаправления 301 "/"... Я думал, что Vhost захватывает только URL-адрес, соответствующий имени или псевдонимам его сервера, но теперь я сомневаюсь.

Я хочу научиться и понять, что я делаю не так.

У кого-нибудь есть ценная подсказка?

Mobil


Рег
30 Jan, 2015

Тем
78

Постов
215

Баллов
645
  • 09, Jun 2024
  • #2
Я попросил удалить его пост и удалить мой профиль.

Я использовал функцию «пожаловаться на это сообщение», потому что на этом форуме НЕТ контактного адреса, НЕТ администратора, НИКТО не несет ответственности.

НЕТ СПОСОБА отредактировать или удалить сообщение, НЕТ СПОСОБА удалить мой профиль, НЕТ СПОСОБА уйти в отставку или покинуть этот форум.

Это каменный век. ЦИФРОВАЯ ТОЧКА - ЭТО ЦИФРОВАЯ ФУФНА!!!
 

Sfe2widn


Рег
19 Mar, 2013

Тем
76

Постов
191

Баллов
581
Тем
403,760
Комментарии
400,028
Опыт
2,418,908