Мне нравится, чтобы мой веб-сайт был доступен для example.org
или https://example.org
не www.example.org
.
Итак, я хочу, чтобы http://www.example.org
перенаправили на http://example.org
и http://www.example.org
по https://example.org
.
Но интересный происходит следующее:
https://www.example.org
перенаправляет на https://example.org
, но не на http://www.example.org
на http://example.org
Мой main.conf:
<VirtualHost *:80>
ServerName example.org
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName example.org
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /pathtocert.pem
SSLCertificateKeyFile /pathtokey.pem
</VirtualHost>
<Directory "/var/www/html">
Options FollowSymlinks ExecCGI
AllowOverride None
Require all granted
</Directory>
Мой www.conf:
<VirtualHost *:80>
ServerName www.example.org
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html"
RedirectPermanent / http://example.org
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.org
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html"
RedirectPermanent / https://example.org
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /pathtocert.pem
SSLCertificateKeyFile /pathtokey.pem
</VirtualHost>
<Directory "/var/www/html">
Options FollowSymlinks ExecCGI
AllowOverride None
Require all granted
</Directory>
Так в чем, похоже, проблема? Также не следует t оба перенаправления http
и https
завершаются неудачно или успешно?
Проблема связана с записями DNS «A» и «AAAA» для домена. Существует предварительно настроенная запись A / AAAA для www
, которая вызывает все проблемы. Я удалил их и добавил новый *. Example.org
. DNS перенаправляет все поддомены с подстановочными знаками на сервер. Теперь ответственность за то, как с ними бороться, лежит на веб-сервере.
Теперь все работает нормально.
Также проверьте это: Как перенаправить весь поддомен с подстановочными знаками на конкретный поддомен? Возникли проблемы с поддоменом, на котором работает сервер nextcloud
Возможно, вы захотите настроить перезапись, вам может понадобиться что-то вроде этого:
в качестве альтернативы, я полагаю, вам следует просто изменить правило перенаправления в *: 80
с RedirectPermanent / http://example.org
на RedirectPermanent / https: / /example.org
. Перенаправление должно указывать на https, а не на http ...