Конфигурация Angular 6 htaccess для веб-сайта HTTPS - PullRequest
0 голосов
/ 27 декабря 2018

Я только что установил сертификат SSL на своем веб-сайте, но после этого функция обновления в моем приложении не работает и возвращает всегда 404 Ошибка: не найдено Я изменил .htaccess файл, но всегда та же проблема.

Вот мой файл .htaccess до обновления моего сайта до HTTPS (он работал)

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(.*) index.html [NC,L]
</IfModule>

<FilesMatch "\.(html|htm|js|json|css)$">
    <IfModule mod_headers.c>
        FileETag None
        Header unset ETag
        Header unset Pragma
        Header unset Cache-Control
        Header unset Last-Modified
        Header set Pragma "no-cache"
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Expires "Mon, 10 Apr 1972 00:00:00 GMT"
    </IfModule>
</FilesMatch>

ErrorDocument 404 /dist/

И после обновления до HTTPSЯ изменяю это на это (не работает)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]

# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html

<FilesMatch "\.(html|htm|js|json|css)$">
        <IfModule mod_headers.c>
                FileETag None
                Header unset ETag
                Header unset Pragma
                Header unset Cache-Control
                Header unset Last-Modified
                Header set Pragma "no-cache"
                Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
                Header set Expires "Mon, 10 Apr 1972 00:00:00 GMT"
        </IfModule>
</FilesMatch>

ErrorDocument 404 /dist/

Спасибо за помощь заранее

1 Ответ

0 голосов
/ 27 декабря 2018

Мое плохое, это была проблема в файле конфигурации apache.

Когда я использовал протокол HTTP, virtualHost: 80 содержит параметр AllowOverride All Но в virtualHost: 443 он не содержит этой опции, поэтому после добавления его в этот virtualHost он отлично работает с первой версией файла .htaccess (см. мой вопрос).

Я поместил это здесь для людей, имеющих ту же проблему.

...