使用 apache 2.4,我的网站在www.example.com,它会自动重定向到https://www.example.com,其中它是完全可访问和功能齐全的。
但是,当我明确尝试使用http://example.com或者https://example.com,我受到了占位符页面的欢迎。
我希望将非 www 重定向到 www。例如 (https://example.com->https://www.example.com
我已经在 .conf 文件中设置了重写规则,但不知为何,它不起作用。访问非 www 时,我看到的只是一个占位符页面。
<VirtualHost <ip>:80>
ServerName www.example.com
ServerAlias example.com
# Redirect to www
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost <ip>:443>
ServerName www.example.com
ServerAlias example.com
SSLCertificateFile /home/admin/certs/www_example_com.crt
SSLCertificateKeyFile /home/admin/certs/www_example_com.key
SSLCACertificateFile /home/admin/certs/DigiCertCA.crt
SSLEngine on
SSLProtocol +TLSv1.2 -TLSv1.1 -TLSv1 -SSLv3 -SSLv2
DirectoryIndex index.php index.html index.htm
# redirect to www
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
答案1
您忘记激活 RewriteEngine。
RewriteEngine on