Не могу установить правельный редирект
Сейчас схема такая:
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ site.ru/$1 [R=301,L]
Но при ней со всех страниц сайта редиректит на главную, причем на index.php
htaccess стандартный.
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 и так со всех страниц. В первом случае тоже самое.
В какое место добавляете? В конец? Попробуйте сразу после строк:По дефолту все строки на месте. Добавляю
RewriteEngine On
RewriteBase /
RewriteRule ^.htaccess$ — [F]
добавить.
Для 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;
У меня для переадресации заработал только такой:
RewriteCond %{ENV:HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]