我正试图获得所有的变化
http://www.example.com http://example.com https://www.example.com https://example.com www.example.com example.com
全部redirect到
https://www.example.com
我有以下mod_rewrite块:
RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ RewriteCond %{HTTP_HOST} ^([az.]+)?example.com$ [NC] RewriteCond %{HTTP_HOST} example.com$ [NC] RewriteRule .? https://www.example.com%{REQUEST_URI} [R=301,L]
似乎除了一个:
https://example.com
不会被redirect到
按预期https://www.example.com
如果我删除了条件:
ReWriteCond %{SERVER_PORT} !^443$
所以它影响http和https,它仍然不像预期的那样。
我哪里错了? 谢谢
您无法使用.httaccess
进行SSL到SSL的redirect
您必须为每个域使用单独的VirtualHost条目(前提是您的Web服务器支持SNI ):
<VirtualHost *:443> ServerName example.com Redirect 301 / https://www.example.com SSLCertificateFile /etc/ssl/example.com.crt SSLCertificateKeyFile /etc/ssl/example.com.key </VirtualHost>