Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с условиями mod_rewrite в htaccess

318
20 апреля 2017 года
nof
193 / / 03.04.2006
Добрый день. Бьюсь головой второй день, никак не могу сделать работоспособный набор условий. Мне нужно, чтобы были 301 редиректы:

http://mydomain.ru -> http://www.mydomain.ru
https://mydomain.ru -> https://www.mydomain.ru
http://mydomain.hosting.ru -> http://www.mydomain.ru
https://mydomain.hosting.ru -> https://www.mydomain.ru

Я начал с первых двух. Вроде примеров полно, но мне нужен именно учёт https. Я сделал вот такой вариант по гайдам и документации mod rewrite:
 
Код:
RewriteCond %{HTTPS} =off
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.mydomain.ru/$1 [R=301,L]

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ https://www.mydomain.ru/$1 [R=301,L]
По идее, первый блок должен отрабатывать для http и он отрабатывает! А второй для https. Но почему-то даже при https отрабатывает первый. Пробовал проверять HTTP_PORT - результат тот же. Правда у меня nginx, может быть с этим связаны проблемы.
Подскажите пожалуйста решение. Спасибо
1
25 апреля 2017 года
kot_
7.3K / / 20.01.2000
Я честно говоря не понимаю что вы ожидаете. Вы выключаете защищенный протокол, отправляете все на незащищенный - а потом удивляетесь почему это работает именно так? Я правильно понял?
Может вы хотите что то такого:
 
Код:
#redirect all http traffic to https, if it is pointed at /checkout
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/checkout/?.*$
RewriteRule ^(.*)$ https://mydomain.com/$1 [R=301,L]
то гда вам нужно указать условие по которому будет использоваться тот или иной случай
1
25 апреля 2017 года
kot_
7.3K / / 20.01.2000
Цитата:
По идее, первый блок должен отрабатывать для http и он отрабатывает! А второй для https.

это вы себе придумали. На самом деле отработает только первый блок

318
26 апреля 2017 года
nof
193 / / 03.04.2006
Цитата: kot_
Цитата:
По идее, первый блок должен отрабатывать для http и он отрабатывает! А второй для https.

это вы себе придумали. На самом деле отработает только первый блок

так в этом то и вопрос ) почему отрабатывает только первый блок? Ведь он не должен отрабатывать, если я захожу по защищённому протоколу

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог