# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent # https://www.domain.com when your cert only allows https://secure.domain.com RewriteCond %{SERVER_PORT} !^443 RewriteRule (.*) https://мойсайт.com/$1 [R=301,L] # The Friendly URLs part RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# HTTPS goes first, with ending [L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] # For Friendly URLs RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
This question has been answered by tiedamn. See the first response.
поменяйте местами обзацы: с Friendly URLs... и # HTTPS goes first...
// fix for NGINX + APACHE pair config if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS'] = 'on'; } if(defined('PHP_SAPI') && (PHP_SAPI == "cli" || PHP_SAPI == "embed")) { $isSecureRequest = false; } else { $isSecureRequest = ((isset ($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') || $_SERVER['SERVER_PORT'] == $https_port); }
RewriteEngine On RewriteBase / #RewriteCond %{REQUEST_URI} /index.php #RewriteCond %{QUERY_STRING} ^\z #RewriteRule ^(.*)$ https://site.ru/? [R=301,L] #RewriteCond %{HTTP_HOST} . #RewriteCond %{HTTP_HOST} !^site\.ru [NC] #RewriteRule (.*) https://site.ru/$1 [R=301,L] #RewriteCond %{SERVER_PORT} !^443 #RewriteRule (.*) https://site.ru/$1 [R=301,L] # The Friendly URLs part RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
@tiedamn, добрый!
...
Соответственно, один из закоментированных кусков рабочий, осталось вспомнить, какой. Friendly URLs часть идет всегда после редиректов для https
RewriteEngine On RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} !^$ RewriteRule .* - [L]
Quote from: himurovi4 at Nov 15, 2016, 06:47 AM@tiedamn, добрый!
...
Соответственно, один из закоментированных кусков рабочий, осталось вспомнить, какой. Friendly URLs часть идет всегда после редиректов для https
Спасибо, к сожалению ваш метод так и не попробовал, так как нашел рабочий вариант, в моем случае надо было в файл htaccess добавить следующие строки:
RewriteEngine On RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} !^$ RewriteRule .* - [L]
Может быть кому пригодиться.