1. Смешение URL двух сайтов! 2. Настройка редиректов.

M
На сайте с 12.06.2010
Offline
50
981

Здравствуйте, люди добрые!

Помогите решить проблему:

VPS сервер CentOS 6.8 на ISP Manager 5.9, на нем 2 сайта и 1 поддомен, все сайты на одном IP.

  • site1.com
  • sub.site1.com
  • site2.ru

Проблема 1.

На сайте site1.com в адресной строке показывается чёрти-что и при этом оно работает! Отдает код 200 и показывает контент

Проблемы стали наблюдаться после подключения HTTPS (SSL)

Для site1.com показываются любые URL:

http://site1.com

https://site1.com

http://www.site1.com

https://www.site1.com

Но самое неприятное, site1.com успешно показывает один и тот же контент под разными немыслимыми URL:

http://site1.com/1.html

https://www.site1.com/категория-site2.ru/а-последняя-часть-URL-с-сайта-site2.ru/

Получается сложенный из двух сайтов URL! Чертовщина какая-то...

При этом для обоих этих адресов показывается одинаковый контент (!)

Также в Яндекс.Вебмастере для site1.com стали показываться кривые URL с окончанием site2.ru, как на примере выше.


При этом если задать в адресной строке:

http://www.site1.com:443/

Ответ будет ещё более странным (site2.ru вместо site1.com):

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL, please.<br />
<blockquote>Hint: <a href="https://site2.ru/"><b>https://site2.ru/</b></a></blockquote></p>
<hr>
<address>Apache/2.2.22 (@RELEASE@) Server at site2.ru Port 443</address>
</body></html>

Дополнительные данные по виртуальным хостам Апача:

В файле для site1.com прописано:

<VirtualHost xxx.xxx.xxx.xxx:80>

ServerName site1.com
...
<VirtualHost xxx.xxx.xxx.xxx:443>
ServerName site1.com
...

В файле для site2.ru прописано:

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName site2.ru
...
<VirtualHost xxx.xxx.xxx.xxx:443>
ServerName site2.ru
...

Везде одинаковый внешний IP-адрес. Не уверен, что это правильно, но так прописал ISP Manager.

Проблема 2.

Помогите настроить HTTPS редирект для site1.com в условиях наличия поддомена

Нужно направить все возможные запросы на https://www.site1.com

А для поддомена направить на https://sub.site1.com

При этом, чтобы сайт и поддомен не конфликтовали из-за настроек .htaccess.


Прилагаю свой текущий .htaccess с сайта site1.com

Options +FollowSymLinks

RewriteEngine On

#Работа субдомена
RewriteCond %{THE_REQUEST} /subdmn/[^/]
RewriteRule ^subdmn/[^/]+/(.*) /$1 [R=permanent,L]
RewriteCond %{HTTP_HOST} ^(.+)\.site1\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.site1\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdmn
RewriteRule ^(.*)$ /subdmn/%1%{REQUEST_URI} [L]

#Защита
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

#SEF настройки ядра CMS
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий