LINUX.ORG.RU
решено ФорумAdmin

Не работает редирект в apache

 ,


0

1

Не работает редирект в apache.
Ниже фрагмент кода из httpd.conf:

<VirtualHost *:80>
   ServerName domail.ltd
   DocumentRoot "/srv/www/domail.ltd/html"
   DirectoryIndex index.html index.htm index.php
   AddDefaultCharset UTF-8
   ErrorLog "/srv/www/domail.ltd/error.log"
   CustomLog "/srv/www/domail.ltd/access.log" combined
   php_value error_log "/srv/www/domail.ltd/php_errors.log"
   <Directory "/srv/www/domail.ltd/html">
      AllowOverride All
      Options -Indexes
      RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
   </Directory>
</VirtualHost>

<VirtualHost *:443>
   ServerName domail.ltd
   DocumentRoot "/srv/www/domail.ltd/html"
   DirectoryIndex index.html index.htm index.php
   AddDefaultCharset UTF-8
   SSLEngine On
   SSLCertificateFile "/srv/www/domail.ltd/domail.ltd_cert.pem"
   SSLCertificateKeyFile "/srv/www/domail.ltd/domail.ltd_privkey.pem"
   SSLVerifyClient require
   SSLCACertificateFile "/etc/pki/CA/cacert.pem"
   ErrorLog "/srv/www/domail.ltd/error.log"
   CustomLog "/srv/www/domail.ltd/access.log" combined
   php_value error_log "/srv/www/domail.ltd/php_errors.log"
   <Directory "/srv/www/domail.ltd/html">
      AllowOverride All
      Options -Indexes
   </Directory>
</VirtualHost>
Для меня это важно, так как для HTTPS-виртхоста установлена верификация клиента, важно, чтобы HTTP-виртхост не выдавал контент вообще, а сразу редиректил.
Вопроса 3:
Почему редирект с HTTP на HTTPS не работает?
Есть ли вообще разница куда вписаны директивы RewriteCond и RewriteRule: в секцию <VirtualHost> файла httpd.conf или в файл .htaccess
Возможно ли включить какой-нибудь режим отладки редиректов, чтобы видеть как редиректы обрабатываются пошагово?

★★★★★

Если у тебя разные виртуалхосты для 80 и 443 порта, то зачем RewriteCond? Если клиент пришёл на 80 порт, то он пришёл по http, а не по https. Делай безусловный rewrite, и всё.

P.S. апач не трогал примерно лет сто, но кажется, что логика верная.

tiandrey ★★★★★
()
Последнее исправление: tiandrey (всего исправлений: 1)
<VirtualHost *:80>
   ServerName domail.ltd
   RewriteEngine On
   RewriteCond %{HTTPS} off
   RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
anc ★★★★★
()
Ответ на: комментарий от anc

Спасибо! Данная лаконичная форма оказалась рабочей.

sunny1983 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.