Здравствуйте. Не могу подобрать нужную схему редиректа. Установил сертификат, а настроить не получается.
Сейчас схема такая:
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ site.ru/$1 [R=301,L]
Но при ней со всех страниц сайта редиректит на главную, причем на index.php
htaccess стандартный.
Не могу установить правельный редирект
#1
14 октября 2014 в 08:19
#2
14 октября 2014 в 09:26
RewriteCond %{HTTPS} off
RewriteRule ^.*$ %{SERVER_NAME}%{REQUEST_URI} [L,R]
или
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ %{SERVER_NAME}%{REQUEST_URI} [L,R]
но надо вставить до блока:
RewriteCond %{REQUEST_URI} !\.(ico|css|js|txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !^/admin
RewriteCond %{REQUEST_FILENAME} !^/migrate
RewriteCond %{REQUEST_FILENAME} !^/install
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
дефолтного чтассесс
RewriteRule ^.*$ %{SERVER_NAME}%{REQUEST_URI} [L,R]
или
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ %{SERVER_NAME}%{REQUEST_URI} [L,R]
но надо вставить до блока:
RewriteCond %{REQUEST_URI} !\.(ico|css|js|txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !^/admin
RewriteCond %{REQUEST_FILENAME} !^/migrate
RewriteCond %{REQUEST_FILENAME} !^/install
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
дефолтного чтассесс
По дефолту все строки на месте. Добавляю
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ %{SERVER_NAME}%{REQUEST_URI} [L,R]
Со ссылки site.ru/site/site.html перекидывает на site.ru/index.php и так со всех страниц. В первом случае тоже самое.
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ %{SERVER_NAME}%{REQUEST_URI} [L,R]
Со ссылки site.ru/site/site.html перекидывает на site.ru/index.php и так со всех страниц. В первом случае тоже самое.
Сегодня в 16:50
#4
14 октября 2014 в 09:55
В какое место добавляете? В конец? Попробуйте сразу после строк:По дефолту все строки на месте. Добавляю
RewriteEngine On
RewriteBase /
RewriteRule ^.htaccess$ — [F]
добавить.
#5
14 октября 2014 в 10:14
Спасибо. Все работает. Проблема была именно в месте размещения команды.
#7
14 августа 2015 в 22:56
Для nginx:
server {server_name domen.ru www.domen.ru;
listen 127.0.0.1; /* здесь IP вашего сервера */
listen 127.0.0.1:443 ssl spdy; /* аналогично, включаем ssl и спиди */
...
if ($scheme = http) { rewrite ^ https://$server_name$request_uri? permanent; } /*сам редирект */
....
}
И да, чтобы получить A+, не забываем добавлять строчку add_header Strict-Transport-Security max-age=31536000;
#8
23 ноября 2023 в 09:29
У меня для переадресации заработал только такой:
RewriteCond %{ENV:HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]