Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   .htaccess и редирект с http на ту же страницу с https. Но у уже есть один RewriteRule (http://forum.oszone.net/showthread.php?t=353778)

Svetik2000 01-07-2023 10:07 3011336

.htaccess и редирект с http на ту же страницу с https. Но у уже есть один RewriteRule
 
Добрый день
Встала задача сделать редирект с http страницы на такую же страницу с https
Проблема в том, что у меня уже есть один RewriteRule в .htaccess
и не понимаю как сделать что бы они оба отрабатывали

вот код
Код:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301]
RewriteRule ^/?([^/]+)/([^/]+)/(\d+)$ /index.php?param=$3 [L]

Выдает ошибку ERR_TOO_MANY_REDIRECTS

Sham 01-07-2023 10:51 3011340

Цитата:

Цитата Svetik2000
%{HTTP:X-HTTPS} !1 »

%{HTTPS} "off"

Svetik2000 01-07-2023 11:22 3011341

Цитата:

Цитата Sham
%{HTTPS} "off" »

добавить после той строчки или заменить ее?

Sham 01-07-2023 12:33 3011347

На самом деле зависит от конфигурации. Если apache получает проксируемые запросы без шифрования (от nginx например), то эти редиректы должны быть настроены в конфиге nginx. Либо если действительно должен передаваться X-HTTPS от nginx, то надо проверять его наличие в http-заголовках у apache.

Svetik2000 01-07-2023 14:32 3011351

nginx не стоит
заменила строчку на вашу.
при обращение по http редиректа не произошло
по https выдало 404 ошибку

Svetik2000 06-07-2023 20:31 3011705

Ну или с помощью php кода как можно это сделать?
что бы со страницы http:/site.ru/bla-bla-bla/be-be-be/pageNNN.php
был редирект на https:/site.ru/bla-bla-bla/be-be-be/pageNNN.php

Sham 06-07-2023 21:13 3011709

Сделайте что-ли для какого-нибудь file.php с содержимым var_dump($_GET); правило RewriteRule file.php file.php?https=%{HTTPS}&x=%{HTTP:X-HTTPS} [END]
Запускайте этот файл с https и без. Выводы в студию. То есть содержимое этих переменных при запросе.

Svetik2000 07-07-2023 11:32 3011766

Добрый день.

с http
array(2) { ["https"]=> string(3) "off" ["x"]=> string(0) "" }

с https
array(2) { ["https"]=> string(2) "on" ["x"]=> string(0) "" }

содержимое .htaccess выглядит сейчас так:

Код:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^/?([^/]+)/([^/]+)/(\d+)$ /index.php?param=$3 [L]
RewriteRule tmp.php tmp.php?https=%{HTTPS}&x=%{HTTP:X-HTTPS} [END]

при запросе с http редиректа на https не произошло

Sham 07-07-2023 13:38 3011775

на выбор
Код:

RewriteCond %{HTTPS} =off
RewriteCond %{THE_REQUEST} "\s/(\S*)\s"
RewriteRule ^ https://%{HTTP_HOST}/%1 [R,L]

или
Код:

RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Цитата:

Цитата Svetik2000
RewriteCond %{HTTP:X-HTTPS} !1 »

это лишняя строка
редирект лучше размещать выше всех отдельных RewriteRule-ов, иначе исходный REQUEST_URI может измениться.

Svetik2000 08-07-2023 08:07 3011846

Спасибо
Вроде бы помогло.
Буду мониторить


Время: 22:44.

Время: 22:44.
© OSzone.net 2001-