# 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, 12:47 AM@tiedamn, добрый!
...
Соответственно, один из закоментированных кусков рабочий, осталось вспомнить, какой. Friendly URLs часть идет всегда после редиректов для https
Спасибо, к сожалению ваш метод так и не попробовал, так как нашел рабочий вариант, в моем случае надо было в файл htaccess добавить следующие строки:
RewriteEngine On RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} !^$ RewriteRule .* - [L]
Может быть кому пригодиться.