Принудительный https на всех страницах, кроме 1 страницы с определенным значением в параметре строки запроса - PullRequest
0 голосов
/ 27 февраля 2012

Я уже искал этот сайт, но мой обходной путь не работает.

Как правило, мне нужно, чтобы на всех страницах был включен https, за исключением 1 страницы с таким URL:

domain.com/begin/index.php?pageid=130&usertype=1&building=2

Если на странице есть параметр Querystring pageid=130 Я не хочу, чтобы https был включен.

Мой .htaccess файл выглядит так:

RewriteEngine On

#HTTPS OFF on pageid 130
RewriteCond %{HTTPS} on
RewriteCond %{QUERY_STRING} (^|&)pageid=(130)($|&)
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

#FORCE HTTPS ON ALL PAGES except for pageid 130
RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} !(^|&)pageid=(130)($|&)
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

1 Ответ

0 голосов
/ 28 февраля 2012

LOL! Маленькая ошибка, но ее трудно обнаружить: вы все еще перенаправляете на https;). Просто удалите 's'.

В противном случае возможно перенаправление и остановка процесса перезаписи = Last = L.

RewriteEngine On

# HTTPS Off on pageid 130
RewriteCond %{HTTPS} On
RewriteCond %{QUERY_STRING} (^|&)pageid=130($|&)
# (!) Remove the "s":
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [QSA,NC,L]

# Force HTTPS on all pages but the one QS 'pageid=130'
RewriteCond %{HTTPS} Off
RewriteCond %{QUERY_STRING} !(^|&)pageid=130($|&)
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,NC,L]
...