Apache http / https非www到ww url重定向

时间:2011-01-18 16:04:19

标签: php linux .htaccess apache2

我遇到了apache配置问题(linux发行版)。 我想重定向键入的URL(在浏览器中):

domain.com
www.domain.com
http://domain.com
http://www.domain.com
https://domain.com

只有一个: https://www.domain.com 我应该在.htaccess文件中做什么? 请注意,我只有一个证书。正好适用于www.domain.com

提前感谢您的帮助! :)

2 个答案:

答案 0 :(得分:1)

这条规则应该这样做:

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} (.+) [OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,R=301]

这四个条件是两组分离条件,其中每组的第一个条件分别测试缺失的www.和非HTTPS。组的每个第二个条件只是为了获得HTTP主机的一部分而没有前导www.

答案 1 :(得分:1)

RewriteEngine On

RewriteCond %{HTTP_HOST}   !=www.domain.com [NC,OR]
RewriteCond %{HTTPS}       !=on [NC]
RewriteRule ^(.*)$         https://www.domain.com%{REQUEST_URI} [NE,R=permanent,L]

在任何情况下,您只有一个虚拟主机,因此在输入https://domain.com时您将无法跳过有关证书的浏览器警告。