从Apache2的HTTPS域名移除“www”?

刚安装了新的12.04 ubuntu服务器。

总是使用样板redirect来删除www,但它看起来像不支持HTTPS,所以我开始环顾四周。 试过我find的一切,不知何故http“www”删除效果很好,但https将不会redirect。

这是我使用的(在/etc/apache2/conf.d中的bp_rewrite.conf文件中):

# Rewrite "www.example.com -> example.com" <IfModule mod_rewrite.c> RewriteCond %{HTTP_HOST} ^www\.(.+) RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+) RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301] </IfModule> 

有没有人经历过这个?

你的示例代码看起来有点过于复杂,但非常接近我使用的:

  RewriteCond %{HTTPS}s%{HTTP_HOST} ^(on(s)|offs).+\.(.+\..+)$ RewriteRule ^(.*)$ http%2://%3$1 [R=301] 

注意:这只是简单的撕掉了域名最后两部分的内容。 因此,您的用户可以inputwhat.the.example.com并将其减less到example.com 。 如果你的域名是example.co.uk或者有三个部分的话,第一行的结尾将不得不被修改。

为了使RewriteRule触发,两个RewriteCond指令都必须是真的。

这个怎么样:

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

现在,如果只有一个条件保持为真(如https://www.example.com/ ,只有第一个条件为真),则应用RewriteRule