Редирект с http на https

KPD

Новичок
Редирект с http на https

Вот, настроил у себя апач пхп и ссл, все работает.

Вот только не пойму как сделать так что если пользовательнабирает http его перебразывало на https автоматически....

вот тут так сделано
http://www.raiffeisen.ru/rBank/corporate/ElectronicBanking.
попробуйте Демо-вход

там загрузтся сразу https но если попробовать изменить на http то он сдлает редирект обратно...

вот непойму как это сделать:(
 

icechel

Новичок
mod_rewrite рулит
Если клиент пришел не с порта HTTPS (обычно 443) перенаправляем его на порт HTTPS
 

Raziel[SD]

untitled00
описание на русском:
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
примеры:
http://www.egoroff.spb.ru/portfolio/apache/rewriteguide.html
 

KPD

Новичок
я извиняюсь, но я не дружу с регулярными выражениями....
сколько не пытался разобраться с м\ними я не могу....

можете расказать что надо написать в .htaccess
чтобы с http://* перикидывало на https://*


спасибо.

-~{}~ 16.09.04 17:58:

Я написал вот так

RewriteEngine on
RewriteBase /191.168.4.19/inform//
RewriteRule ^http://$ https:/// [R]


видимо неверно:(
неработает
 

icechel

Новичок
Логично мыслишь. Если не работает - значит неверно.

В тех ссылках что тебе дали есть реальный пример редиректа по портам.

А с регами надо разобраться. Иначе потом начнешь спрашивать а как это сделать, а как это.
Главное не надо бояться. И пробовать, пробовать и пробовать пока не заработает.
Опять таки мануалы никто не запрещал читать.
 

KPD

Новичок
кстати , глупый вопрос: как узнать работает ли у меня модуль mod_rewrite?

теперь вроде верно, но не работает всёравно
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^http$ https [L]

я вот думаю может у меня сам модуль не работает... а как узнать это?
 

KPD

Новичок
в том то и дело что модуль не работает у меня.
надо перекомпилить апач с --enable-module=rewrite
как я понял....

-~{}~ 17.09.04 11:07:

Может я чтото не так делаю.

Смотрите:
1. я положил файлик .htaccess в папку home/pasha/www/inform/
в этой папке у меня лежит та система которая должна тока через hhtps работать
2. Документ рут у меня /home/pasha/www/
3. в httpd.conf прописано AddModule mod_rewrite.c, апач компилировался с --enable-module=rewrite

но ничего не работает

в файле .htaccess пишу
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) http://%{HTTP_HOST}:443/$1

или так
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) http://191.168.4.19:443/$1 [L,R]

-~{}~ 17.09.04 11:54:

кажется что всётаки модуль не работает у меня...

или .htaccess неработает....:(
непойму...

-~{}~ 17.09.04 12:00:

прописал вот это
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) http://%{HTTP_HOST}:443/$1

в httpd.conf
по http вообще перестало работать:(
пишет ошибка 400 The page cannot be found

а по https работает...

-~{}~ 17.09.04 12:05:

причем вот ещё что получается (это когда в httpd.conf не прописано Rewrite)
когда пишу
https://191.168.4.19/inform/inform.php?SID=0&TASK=login&UserName=guest&Password=guest
работает
когда
https://191.168.4.19:443/inform/inform.php?SID=0&TASK=login&UserName=guest&Password=guest
тоже работает
когда
http://191.168.4.19/inform/inform.php?SID=0&TASK=login&UserName=guest&Password=guest
работает

когда
http://191.168.4.19:443/inform/inform.php?SID=0&TASK=login&UserName=guest&Password=guest
почемуто неработает

-~{}~ 17.09.04 12:17:

теперь прописал в httpd.conf
вот так

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) http://%{HTTP_HOST}:443/$1


в ответ на запрос
http://191.168.4.19:443/inform/inform.php?SID=0&TASK=login&UserName=guest&Password=guest

получил следующее

Bad Request
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.


Hint: https://191.168.4.19:443/


--------------------------------------------------------------------------------

Apache/1.3.31 Server at 191.168.4.19 Port 443
-~{}~ 17.09.04 12:24:

вот, добился:)
написал в httpd.conf
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}:443/$1

и всё заработало!

но как сделать чтобы это действовало только на папку inform

у меня там лежит файл .htaacces но с ним ничего не работает....

почему?

-~{}~ 17.09.04 13:06:

всём спасибо за консультацию!
у меня всё заработало

в .htaccess написал вот это
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}:443/inform/$1

в httpd.conf
вот это
#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride All
RewriteEngine on
 
Сверху