Apache httpd - 重定向非www& http到https:// www

时间:2014-10-18 13:13:32

标签: apache .htaccess centos virtualhost

我希望将所有流量定向到https://www.domain.co.uk。因此,只要请求http://www.domain.co.ukhttp://domain.co.uk甚至https://domain.co.uk,就会将其重定向到https://www.domain.co.uk

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

当我转到http://domain.co.uk时使用上面的设置我收到403 Forbidden响应。此外,访问https://domain.co.uk时,它不会被重定向,因此我在Chrome上收到了隐私权错误。

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

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在/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]