强制SSL&用.htaccess输入的任何URI的www子域名?

时间:2009-02-20 16:08:39

标签: .htaccess mod-rewrite ssl subdomain

我有一个网站'www'子域的SSL证书,我们称之为example.com。

因此我可以强制使用SSL,但如果用户未在其浏览器中输入“www.example.com”,则SSL证书似乎无效。

我希望在网站根目录下的.htaccess文件中使用mod_rewrite规则来完成此操作。

无论用户输入什么URI,(例如example.com,www.example.com,https://example.com,example.com / folder / file.html等),我都想强制使用HTTPS < em>和 www子域,保留他们提供的任何URI。当然。

我正在玩.htaccess文件和一些规则,因为我已经做过一些研究,但我对mod_rewrite或.htaccess没有多少经验。我想我发现几乎的SVN版本对我有用,但并不完全。这是:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^example.com [nc]
RewriteRule ^(.*)$ https://www.example.com/$1 [r=301,nc]

尽量不要对我的文件大笑;它主要源于我在网上找到的例子。

任何指针都表示赞赏! =)

1 个答案:

答案 0 :(得分:3)

试试这个:

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301]