GM_pAnda
@GM_pAnda
Бездельник

Два файла htaccess как настроить редирект?

Доброго времени суток. Есть вот такой htaccess. Пытался настроить https, но не могу допедрить как указать перенаправление на public папку. Там тоже лежит htaccess
В главной деректории
RewriteEngine On
AddDefaultCharset utf-8
RewriteRule ^(.*)$ public/$1

из папки public
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) index.php?$1 [L,QSA]

В каком из них нужно указывать редирект на https?
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
В любом из них, мало того в люлой папке
.htaccess ммогут лежать в любой папке и каждый из них будет частным случаем от предидущего
Так что если вам нужно указать на весь сайт то в корне сайта, если настройки только для одной директории то можно создать этот файл там и задать нужные настройки в нем.

Теперь по настройке https
если вы хотели настроить https - то это не к .htaccess а к vitrualhost и где и какие они у вас зависит от хостинга.
Если же вы хотели сделать редиректы http > https то не вопрос это легко сделать.
Да и эти редиректы до ЧПУ вашего сайта!
Правила нестандартные поскольку вначале делается редирект с основного зеркала, притом сохраняя протокол, а потом только меняется протокол, однако такой вариант может учесть любой требуемый вам вариант редиректа, просто раскоментировав нужный кусок.
Стандартные правила можете лекго найти в интернете.

############################################################################
#### Выбор основного зеркала (с www или без www)                        ####
############################################################################
    # 1. Удалить www
#RewriteCond %{ENV:HTTPS} on
    #Если включен https
#RewriteRule .* - [E=SSL:s]
    #То создаем переменную  ssl с текстом s
#RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    # Проверяем, содержит ли домен www в начале URL.
#RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]
    # Перенаправляем удаляем www

    # 2. Добавить www
RewriteCond %{ENV:HTTPS} on
    #Если включен https
RewriteRule .* - [E=SSL:s]
    #То создаем переменную  ssl с текстом s
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
    # Если нет www в начале домена
RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]
    #Подставляем www и https если он включен.

############################################################################
#### Перенаправляем протокол https на http                              ####
############################################################################
#RewriteCond %{ENV:HTTPS} on
   # Проверяем наличие https в URL.
#RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
   # Перенаправляем протокол на http.

############################################################################
#### Перенаправляем протокол http на https                              ####
############################################################################
RewriteCond %{ENV:HTTPS} !on
   # Проверяем наличие https в URL.
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
   # Перенаправляем протокол на http.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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