synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяВеб Сервер + PHP / MySQL › не работает перенаправление сайта на веб сервере

не работает перенаправление сайта на веб сервере

schel4ok · 16.08.2020

я настроил web station вот так

Настройки веб сервера по умолчанию

Настройки хоста

 

Настройки DNS у провайдера

mysite.ru. IN NS          ns1.r01.ru.
mysite.ru. IN NS          ns2.r01.ru.
mysite.ru. IN A          11.22.33.44
www     IN A          11.22.33.44
mysite.ru. IN MX 10     mail.mysite.ru.
mail             IN A     11.22.33.44

 

.htaccess

AddType application/x-httpd-php .php .htm .html
]

 

Но что-то не так

http://mysite.ru/ и https://mysite.ru/ - открывает мой сайт

http://www.mysite.ru/ и https://www.mysite.ru/ - открывает дефолтный хост с текстом Web Station has been enabled. To finish setting up your website, please see the "Web Service" section of DSM Help.

 

 

Я пробовал разные рецепты редиректа www для htaccess из интернета, но они нифига не помогают.

Всё равно ссылка с www открывает дефолтный хост synology.

schel4ok · 16.08.2020

Такое ощущение, что надо создавать второй хост www.mysite.ru указывающий на ту же папку

ent · 16.08.2020

Верно, а иначе как apache должен догадаться, куда переадресовать юзера по запросу www.mysite.ru.

schel4ok · 16.08.2020

Обычно можно в htaccess написать правило переадресации хоста с www на хост без www.

И на внешнем хостинге у меня такое работает.

А на synology нифига

schel4ok · 16.08.2020

Скорее всего вопрос в том что в настройках виртуального хоста автоматически прописывается свойство ServerName mysite.ru, а добавить свойство ServerAlias www.mysite.ru никак нельзя

schel4ok · 16.08.2020

Короче я нашёл конфиг апача по адресу /usr/local/etc/apache24/sites-enabled/httpd-vhost.conf и добавил в конфиг своего хоста строку ServerAlias www.mysite.ru

Потом добавил код редиректа с www на без www в htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

 

Только это всё было бестолку, потому что после перезагрузки апача файл httpd-vhost.conf полностью обнулился и моё дополнение стёрлось.

 

Получается, что единственный выход - это фигачить по 2 виртуальных хоста на каждый сайт. Один с www, а другой без.

И после создания второго хоста с www уже код редиректа в htaccess отрабатывает и перенаправляет на сайт без www.

Плюс на обоих поставил галочку HSTS и теперь всё редиректится на https://mysite.ru

 

Команда

curl -I http://www.mysite.ru

выдаёт ответ с 301 редиректом

Другого решения пока не нашёл.

Baloo · 26.03.2023

Спасибо, сделал также