- 16, Mar 2017
- #1
Здравствуйте, люди добрые!
Помогите решить проблему:
VPS сервер CentOS 6.8 на ISP Manager 5.9, на нем 2 сайта и 1 поддомен, все сайты на одном IP.
Проблема 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):
А для поддомена направить на https://sub.site1.com
При этом, чтобы сайт и поддомен не конфликтовали из-за настроек .htaccess.
Прилагаю свой текущий .htaccess с сайта site1.com
- 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://[COLOR="Red"][B]site2.ru[/B][/COLOR]/"><b>https://[COLOR="Red"][B]site2.ru[/B][/COLOR]/</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]