最近、サイトを https に移行するためにワイルドカード SSL 証明書を購入しました。Apache は複数の仮想ホストを、同じ IP の下で別々の s で処理できないため、mod_vhost_alias から VirtualDocumentRoot を使用することを余儀なくされました。これにより、最初は Apache とワイルドカード証明書に関する問題が解決されましたが、長くは続きませんでした。
やむを得ず、サイトのホームページをドメインのルート (つまり、http://www.domain.comではなくhttp://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 を使用して構築されました。
ここでの主な謎は、なぜどのサブドメインでも機能するのに、ルート サブドメインを使用しているときには機能しないのかということです。問題の原因となっている可能性のあるヒントはありますか? .htacess のすべての書き換えを確認する方法はありますか?