Apache mod_rewrite перенаправляет меня на https: // www. (Буквально) по какой-то причине

Я настроил сервер Apache на моем компьютере Ubuntu 18.04 с поддержкой HTTPS.

У меня есть сертификат SSL для * .example.com, поэтому в моем решении, например, используется HTTPS. com должен был перенаправить его на www, а затем перенаправить на HTTPS для всех поддоменов.

Вот моя конфигурация перенаправления HTTP-версии:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^/?(.*) http://www.%{SERVER_NAME}/$1 [R,L]
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Я попытался заменить % {SERVER_NAME} на % {HTTP_HOST}

Я также много раз перезапускал apache2 и пытался очистить кеш моих браузеров, но он продолжает перенаправлять на https: // www.

PS Я не эксперт по Apache, поэтому скажите, пожалуйста, Я использую неправильный синтаксис

0
задан 1 August 2018 в 04:58
2 ответа

Так как я использую Let's Encrypt через https://sslforfree.com , я поигрался и решил, что могу сгенерировать один сертификат SSL для * .example.com и example.com, что исключило необходимость перенаправления на www. :)

Введите *. Example.com example.com в строку поиска на веб-сайте

0
ответ дан 4 December 2019 в 15:52

Here's how I do it, but I don't use a .htaccess file - I put it directly into the Apache VirtualHost config - Note that I'm on Debian systems, and they take a different path to configuration with the *-available vs *-enabled directories, and main global server config elsewhere...

<VirtualHost 10.0.2.15:80>
  ServerName example.com
  ServerAlias www.example.com
  RewriteEngine on
  RewriteRule ^/(.*)$ https://www.example.com/$1 [R,L]
</VirtualHost>
<VirtualHost 10.0.2.15:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    DocumentRoot /var/www-example.com
    <directory /var/www-example.com>
        Options All
                AllowOverride All
                Require all granted
    </directory>
    ErrorLog ${APACHE_LOG_DIR}/ssl-example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-example.com-access.log combined
</VirtualHost>
1
ответ дан 4 December 2019 в 15:52

Теги

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