Недавно я купил подстановочный сертификат ssl для перемещения моего сайта на https. Поскольку Apache не может обрабатывать несколько виртуальных хостов под одним и тем же IP-адресом в отдельных s, я был вынужден использовать VirtualDocumentRoot из mod_vhost_alias. Это сначала решило мои проблемы с Apache и подстановочным сертификатом, но это было ненадолго.Бесконечный цикл при переписывании на https
В связи с необходимостью я решил переместить домашнюю страницу моего сайта в корень домена (то есть http://domain.com, а не http://www.domain.com). Как только я перешел, правила, которые я установил для перехода на https, вызывают бесконечный цикл на сервере, что приводит к ошибке 500. Обратите внимание, что те же правила, применяемые к любому поддомену, все еще работают, переписывая любой http на https.
Ошибка:
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary.
Моего VirtualHost конфигурация:
<VirtualHost IP:443>
...
VirtualDocumentRoot /.../public_html/%1/
...
VirtualScriptAlias /.../public_html/%1/cgi-bin/
...
</VirtualHost>
Моего .htaccess конфигурация:
SetEnv APPLICATION_ENV development
Options +FollowSymlinks -Indexes
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ - [NC,L]
RewriteRule ^(.*)$ index.php [NC,L]
<FilesMatch "\\.(js|css)$">
SetOutputFilter DEFLATE
</FilesMatch>
Мое приложение было построено с использованием Zend Framework.
Основная загадка здесь, почему она работает с любым поддоменом, но не тогда, когда я использую корневой поддомен. Любой намек на то, что может вызвать проблему? Есть ли способ увидеть все перезаписи de .htacess?