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

问题描述:

我正在寻找将所有流量指向https://www.domain.co.uk。所以无论何时需要http://www.domain.co.uk,http://domain.co.uk或甚至https://domain.co.uk,它都会被重定向到https://www.domain.co.ukApache httpd - 将非www&http重定向到https:// www

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

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

<VirtualHost *:443> 
     ServerAdmin [email protected] 
     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 [email protected] 
     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禁止响应。此外,参观https://domain.co.uk时,它并不会因此重定向和我得到一个隐私错误在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]