Правильное перенаправление Apache с http на https

я создал новый виртуальный хост для нового сайта на моем сервере, но он действует странно, несмотря на то, что имеет те же настройки, что и мой исходный сайт.

я хочу, чтобы все запросы перенаправлялись на HTTPS, проще говоря. На моем основном сайте (рабочем) у меня это указано в VirtualHost config и в .htaccess у меня есть дополнительное правило, разрешающее короткие URL-адреса. В частности, проблема на нерабочем сайте в том, что если я попытаюсь зайти в example.com/url, редирект идет https://example.comurl и удаляет необходимые / из URL.

я скопировал точную конфигурацию на новый VirtualHost и .htaccess файл с рабочего сайта, поэтому я не уверен, почему он не работает на новом. Мои DNS-записи для обоих сайтов все используют записи A, чтобы указать на него, никаких перенаправлений или чего-либо на уровне DNS. Я пытался поставить / в конце Redirect строк в коде ниже, но проблема не была решена. Сервер с Ubuntu 14.04, и Апач версия 2.4.7. Оба сайта являются отдельными доменными именами с отдельным .conf используемые файлы, но они размещены на том же сервере с тем же IP-адресом. Как я могу решить эту проблему?

соответствующий код в тег VirtualHost:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com
</VirtualHost>

и .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*.html$ %{REQUEST_FILENAME}.html [L]

в случае, если это помогает/дела, это протокол SSL config в мой файл хост, хотя он находится в самом начале файла вне всех других директивы:

SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

и это конфигурация специально для VirtualHost для сайта:

<VirtualHost *:443>
    ServerName example.com
    ServerAdmin user@example.com
    DocumentRoot /var/www/example
    ErrorLog ${APACHE_LOG_DIR}/errorexample.log
    Options -Indexes

    SSLEngine on
    SSLCertificateFile /etc/ssl/example/examplecert.crt
    SSLCertificateKeyFile /etc/ssl/example/examplekey.key
    SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>
25
задан vaindil
06.03.2023 7:53 Количество просмотров материала 2414
Распечатать страницу

1 ответ

перенаправить на HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

но у вас должен быть виртуальный хост для ssl:

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    SSLEngine on
    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

Примечание: необходимо создать SSL-сертификат... но есть большой учебник для этого!

3
отвечен Ricain 2023-03-07 15:41

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх