Определенный субдомен в виртуальном хост не перенаправляет, но другие успешно

Мне нравится, чтобы мой веб-сайт был доступен для 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 завершаются неудачно или успешно?

0
задан 26 August 2017 в 20:26
2 ответа

Проблема связана с записями DNS «A» и «AAAA» для домена. Существует предварительно настроенная запись A / AAAA для www , которая вызывает все проблемы. Я удалил их и добавил новый *. Example.org . DNS перенаправляет все поддомены с подстановочными знаками на сервер. Теперь ответственность за то, как с ними бороться, лежит на веб-сервере.

Теперь все работает нормально.

Также проверьте это: Как перенаправить весь поддомен с подстановочными знаками на конкретный поддомен? Возникли проблемы с поддоменом, на котором работает сервер nextcloud

1
ответ дан 4 December 2019 в 16:09

Возможно, вы захотите настроить перезапись, вам может понадобиться что-то вроде этого:

RewriteEngine On # это перенаправляет только с www.example.org на https Скидка RewriteCond% {HTTPS} RewriteCond% {HTTP_HOST} ^ www.example.org [NC] RewriteCond% {HTTP_HOST} ^ example.org [NC] # это перенаправляет все на его https-эквивалент Скидка RewriteCond% {HTTPS} RewriteRule (. *) Https: //% {HTTP_HOST} / $ 1 [R, L]

в качестве альтернативы, я полагаю, вам следует просто изменить правило перенаправления в *: 80 с RedirectPermanent / http://example.org на RedirectPermanent / https: / /example.org . Перенаправление должно указывать на https, а не на http ...

0
ответ дан 4 December 2019 в 16:09

Теги

Похожие вопросы