apachehttpd-将非www&http重定向到https://www

apachehttpd-将非www&http重定向到https://www,apache,.htaccess,centos,virtualhost,Apache,.htaccess,Centos,Virtualhost,我希望所有的交通都能直达。因此,无论何时,甚至是被请求,它都会被重定向到 我在httpd.conf中使用虚拟主机来实现这一点时遇到了困难。我尝试了以下和许多其他变体 <VirtualHost *:80> ServerName domain.co.uk ServerAlias domain.co.uk Redirect / https://www.domain.co.uk </VirtualHost> <VirtualHost *:

我希望所有的交通都能直达。因此,无论何时,甚至是被请求,它都会被重定向到

我在httpd.conf中使用虚拟主机来实现这一点时遇到了困难。我尝试了以下和许多其他变体

<VirtualHost *:80>
    ServerName domain.co.uk
    ServerAlias domain.co.uk
    Redirect / https://www.domain.co.uk     
</VirtualHost>

<VirtualHost *:443>
        ServerAdmin system@domain.co.uk
        ServerName  domain.co.uk
        ServerAlias www.domain.co.uk
        DirectoryIndex index.html
        DocumentRoot /var/www/html/domain.co.uk
        SSLEngine on
        SSLCertificateFile /etc/httpd/ssl/www.domain.co.uk.crt
        SSLCertificateKeyFile /etc/httpd/ssl/www.domain.co.uk.key
        SSLCertificateChainFile /etc/httpd/ssl/www.domain.co.uk-geotrust.crt
        <Directory /var/www/html/domain.co.uk>
            Options FollowSymLinks 
            AllowOverride all
            Allow from all
        </Directory>
        DocumentRoot /var/www/html/domain.co.uk
        ServerName domain.co.uk
</VirtualHost>

<VirtualHost *:443>
        ServerAdmin system@domain.co.uk
        ServerName  domain.co.uk
        ServerAlias *.domain.co.uk

        <Directory /var/www/html/domain.co.uk>
            Options FollowSymLinks 
            AllowOverride all
            Allow from all
        </Directory>
        DocumentRoot /var/www/html/domain.co.uk
</VirtualHost>
使用上面的设置,当我转到时,我得到一个403禁止响应。此外,当访问时,它不会被重定向,因此我会在Chrome上看到一个隐私错误

如果你能帮助我实现我的目标,我将非常感激


谢谢。

您可以在/var/www/html/domain.co.uk/.htaccess中创建此规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^ https://www.domain.co.uk%{REQUEST_URI} [R=301,L,NE]