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

  • Автор темы mobil
  • 45
  • Обновлено
  • 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

Тем
1

Постов
2

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

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

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

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

Дмитрий Подскоченко


Рег
19 Mar, 2013

Тем
0

Постов
3

Баллов
3