При заходе по ссылке без https на внутренние страницы переадресует на index.php Есть решение

Добрый день, если зайти на сайт по ссылке site.ru/category/name, то происходит переадресация на https://site.ru/index.php (404). При заходе на главную без https всё нормально, с неё без проблем переходит на внутренние. Если переходить по https://site.ru/category/name то так же всё ок.

Хостинг Beget, содержимое .httaccess:

<FilesMatch "\.md5$">
    Deny from all
</FilesMatch>

DirectoryIndex index.php
Options -Indexes
# Comment the following line, if option Multiviews not allowed here
Options -MultiViews

AddDefaultCharset utf-8

<ifModule mod_rewrite.c>
    RewriteEngine On
    # Uncomment the following line, if you are having trouble
    #RewriteBase /

    RewriteCond %{REQUEST_URI} !\.(js|css|jpg|jpeg|gif|png|svg|ttf|eot|otf|woff|woff2)$ [or]
    RewriteCond %{REQUEST_URI} apple-touch-icon\.png$ [or]
    RewriteCond %{REQUEST_METHOD} ^(POST|PUT|COPY|MOVE|DELETE|PROPFIND|OPTIONS|MKCOL)$ [or]
    RewriteCond %{HTTP:Translate} ^.+$ [or]
    RewriteCond %{HTTP_USER_AGENT} ^(DavClnt|litmus|gvfs|davfs|wdfs|WebDAV|cadaver|Cyberduck)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifModule>

<ifModule mod_headers.c>
    <FilesMatch "\.(jpg|jpeg|png|gif|js|css|svg|ttf|eot|otf|woff|woff2)$">
        Header set Cache-Control "max-age=3153600, public"
    </FilesMatch>
</ifModule>

Добавлял для переадресации на https

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

1 ответ

  • 1
    Олег 29 марта 2017 10:38 # Решение

    Уже нашел ответ от Владислава Горлова в другой теме (спасибо ему :)

    "Редирект на https следует делать первым (после RewriteEngine On и #RewriteBase /)"

    Попробовал, работает!

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите