Apache RewriteRule 未重定向到 www

Apache RewriteRule 未重定向到 www

使用 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

相关内容