Як перенаправити HTTP на HTTPS на той же httpd?


10

Ось що я отримав:

  • CentOS 5.4 (32-бітний)
  • встановлено Apache httpd (версія сервера: Apache / 2.2.11 (Unix))
  • mod_rewrite вже представляє

Питання: як перенаправити простий http://site.com на https://site.com, не використовуючи VirtualHost визначає?

PS: намагався знайти в наступних відповідях на SF, але не знаходить приємного рішення.

Дякую.

Відповіді:


9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1має більше сенсу для мене.
Крегокс

Не буде ця безмежна петля на вас?
Ернест Мюллер

Ні, просто перевірив це. Навіть як це радиться під документами - подивіться в кінці.
Крего

1
Я отримую нескінченний цикл за допомогою Apache 2.4.10, що розгортається на Heroku, коли я вставляю ці команди у свій .htaccess. І варіант, запропонований Кавасом, дивно перекручує мою URL. Я спробував інший набір команд: RewriteCond %{HTTP:X-Forwarded-Proto} !httpsі RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- який працює на Chrome і Firefox, але не працює на Safari та Opera. Цікаво, що якщо я візьму три рядки вище та пропущу, RewriteEngine Onя більше не отримую нескінченний цикл, але він все одно не працює в Safari та Opera (і працює в Chrome та Firefox).
Purplejacket

2

Ви можете використовувати mod_alias та Redirect на основі каталогу. Зв'язаний документ визначає додаткові деталі.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.