Apache mod_rewrite不适用于带有

时间:2016-01-10 00:42:39

标签: apache mod-rewrite ssl

我有两个域名:example.com和example.us,并希望将所有域名重定向到一个域名。

我想要

http://example.us,
https://example.us,
http://www.example.us
https://www.example.us,
http://example.com,
http://www.example.com,
https://www.example.com

重定向到https://example.com

在apache conf文件(httpd.conf和ssl.conf)上我写道:

<Directory /var/www/html>
     Options Indexes FollowSymLinks MultiViews
     AllowOverride all
     Order allow,deny
     allow from all

     RewriteEngine On
     RewriteCond %{HTTP_HOST} ^www\.example\.us
     RewriteRule (.*) https://example.com/$1 [R=301,L]

     RewriteEngine On
     RewriteCond %{HTTP_HOST} !^example.com$
     RewriteRule ^.*$ https://example.com%{REQUEST_URI} [R=301,L]

</Directory>

我的根目录是/ var / www / html

问题在于所有这些都有效。

https://www.example.us保持相同的url并抛出ssl错误(因为我的证书是example.com而不是example.us)。我还需要它重定向到https://example.com

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

  

https://www.example.us保持相同的url并抛出ssl错误(因为我的证书是example.com而不是example.us)。我还需要它重定向到https://example.com

由于重定向仅在SSL握手后完成,因此证书需要对您重定向的域有效。这意味着当连接到www.example.us时,服务器需要提供涵盖www.example.us的证书,即使您只想使用此连接将该域重定向到example.com。